题目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!
");
}
else
printf("Yes!
");
}
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
****************************************************************/