PAT练习 守形数
Description
守形数是这样一种整数,它的平方的低位部分等于它本身。
比如25的平方是625,低位部分是25,因此25是一个守形数。
编一个程序,判断N是否为守形数。
Input
输入包括1个整数N,2<=N<100。
Output
可能有多组测试数据,对于每组数据,
输出"Yes!”表示N是守形数。
输出"No!”表示N不是守形数。
Sample Input
6 11
Sample Output
Yes! No!
C++实现
#include <string>
#include <iostream>
using namespace std;
bool is_shouxing(int num,int len){
int num_square=num*num;
if(len==1){
if((num_square-num)%10==0){
return true;
}
}
if(len==2){
if((num_square-num)%100==0){
return true;
}
}
return false;
}
int main(){
string N;
int num;
while(cin>>N){
if(N.length()==1){
num=N[0]-'0';
}
if(N.length()==2){
num=(N[0]-'0')*10+(N[1]-'0');
}
if(is_shouxing(num, N.length())){
cout<<"Yes!"<<endl;
}else{
cout<<"No!"<<endl;
}
}
}