题目1183:守形数

时间限制:1 秒

内存限制:32 兆

特殊判题:否

提交:2663

解决:1424

题目描写叙述:

守形数是这样一种整数。它的平方的低位部分等于它本身。

比方25的平方是625。低位部分是25,因此25是一个守形数。

编一个程序,推断N是否为守形数。

输入:

输入包含1个整数N,2<=N<100。

输出:

可能有多组測试数据。对于每组数据。

输出"Yes!”表示N是守形数。

输出"No!”表示N不是守形数。

例子输入:
25
4
例子输出:
Yes!
No!
#include<stdio.h>
#include<string.h>
int N;
char s1[10001];
char s2[10001];
void check()
{
int flag=0;
int N2=N*N;
int i=0;
while(N)
{
s1[i++]="0123456789"[N%10];
N/=10;
}
i=0;
while(N2)
{
s2[i++]="0123456789"[N2%10];
N2/=10;
}
for(int i=0;i<strlen(s1);++i)
{
if(s1[i]!=s2[i])
{
flag=1;
break;
}
}
if(flag)
{
printf("No!\n");
}
else
printf("Yes!\n"); }
int main(int argc, char *argv[])
{
// freopen("1183.in", "r", stdin);
while(~scanf("%d",&N)){
memset(s1,0,sizeof(s1));
memset(s2,0,sizeof(s2));
check();
}
return 0;
} /**************************************************************
Problem: 1183
User: kirchhoff
Language: C
Result: Accepted
Time:0 ms
Memory:932 kb
****************************************************************/
05-08 15:30