题目描述
守形数是这样一种整数,它的平方的低位部分等于它本身。
比如25的平方是625,低位部分是25,因此25是一个守形数。
编一个程序,判断N是否为守形数。
输入描述:
输入包括1个整数N,2<=N<100。
输出描述:
可能有多组测试数据,对于每组数据,
输出"Yes!”表示N是守形数。
输出"No!”表示N不是守形数。
输入
25
4
输出
Yes!
No!
代码
#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;
string ch[10]={"0","1","2","3","4","5","6","7","8","9"};
int main(){
int n,pre;
string prestr="",str="";
while(cin>>n){
prestr="";
str="";
pre=n*n;
while(pre){
prestr+=ch[pre%10];
pre/=10;
}
while(n){
str+=ch[n%10];
n/=10;
}
if(prestr.find(str)==0){
cout<<"Yes!"<<endl;
}
else
cout<<"No!"<<endl;
}
return 0;
}