时间限制:1秒 空间限制:32768K
题目描述
守形数是这样一种整数,它的平方的低位部分等于它本身。 比如25的平方是625,低位部分是25,因此25是一个守形数。 编一个程序,判断N是否为守形数。
输入描述: 输入包括1个整数N,2<=N<100。
输出描述: 可能有多组测试数据,对于每组数据, 输出"Yes!”表示N是守形数。 输出"No!”表示N不是守形数。
输入例子: 25
4
输出例子: Yes!
No!
思路:平方后对低位取余,再判断书否相等即可。
(之前没看见n<100o(╯□╰)o)
代码:
#include <iostream> using namespace std; int pow(int n){ int ans=1; for(int i=1;i<=n;i++) ans=ans*10; return ans; } int main(){ int n; int countl,temp,tmp,nn; while(cin>>n){ countl=0; temp=n*n; nn=n; while(n){ countl++; n=n/10; } tmp=pow(countl); if(temp%tmp==nn) cout<<"Yes!"<<endl; else cout<<"No!"<<endl; } return 0; }