题目描述
守形数是这样一种整数,它的平方的低位部分等于它本身。
比如25的平方是625,低位部分是25,因此25是一个守形数。
编一个程序,判断N是否为守形数。
输入
输入包括1个整数N,2<=N<100。
输出
可能有多组测试数据,对于每组数据,
输出"Yes!”表示N是守形数。
输出"No!”表示N不是守形数。
样例输入
6
11
样例输出
Yes!
No!
提示 [+]
*** 提示已隐藏,点击上方 [+] 可显示 ***
来源
/*********************************
* 日期:2013-2-20
* 作者:SJF0115
* 题号: 九度OJ 题目1127: 守形数
* 来源:http://acmclub.com/problem.php?id=1127
* 结果:AC
* 来源:2002年华中科技大学计算机研究生机试真题
* 总结:
**********************************/
#include<stdio.h>
#include<malloc.h>
int main()
{
int n,p;
while(scanf("%d",&n) != EOF){
p = n * n;
//printf("N:%d P:%d\n",n,p);
//n一位数则只比较p的个位数
if(n < 10){
if(n == p % 10){
printf("Yes!\n");
}
else{
printf("No!\n");
}
}
//n是二位数则比较p的个位数和十位数
else{
//个位数
if(n % 10 == p % 10){
n = n / 10;
p = p / 10;
//十位数
if(n % 10 == p % 10){
printf("Yes!\n");
}
else{
printf("No!\n");
}
}
else{
printf("No!\n");
}
}
}
return 0;
}
转载
#include "stdio.h"
int main()
{
int n,square;
while(~scanf("%d",&n))
{
square=n*n;
if(n<2||n>=100)
printf("error!\n");
else
{
while(n!=0)
{
if(n%10!=square%10)
{
printf("No!\n");
break;
}
else
{
n/=10;
square/=10;
}
}
if(n==0) printf("Yes!\n");
}
}
return 0;
}