题目已经说明了2<=N<100
故可分为以下两种情况分析:
①2<=N<=10:当N=5或N=6时,满足守形数的条件,返回真,其余一位数不满足,返回假
②10<=N<100:当N>=10时,因为都是两位数,故其平方对100取模即可提取出最低的两位数,与i对比若相同则满足条件,返回真
③1、2都不满足返回假
#include <iostream>
#include <cstdio>
using namespace std;
bool check(int i){
if(i == 5 || i == 6){
return true;
}
if(i >= 10){
if((i * i) % 100 == i){
return true;
}
}
return false;
}
int main(){
int n;
while(~scanf("%d", &n)){
if(check(n)){
printf("Yes!\n");
}else{
printf("No!\n");
}
}
return 0;
}
京公网安备 11010502036488号