题目截图:
思路:
首先,只有尾数为 0,1,5,6 的数才可能为守形数,所以其他可以直接排除。然后对其他的数进行判断即可。
代码如下:
1 /* 2 守形数 3 */ 4 5 #include6 #include 7 #include 8 #include 9 #include 10 #include 11 12 int main() {13 int N;14 while(scanf("%d", &N) != EOF) {15 int g = N%10; // 提取尾数 16 // 只有尾数为 0,1,5,6 的数才可能为守形数17 if(g==1 || g==5 || g==6 || g==0) {18 int t = N*N; 19 int ans=10; // 用来提取低位部分 20 if(N > 10) {21 ans = 100;22 } 23 if(t%ans == N) { // 判断是否是守形数 24 printf("Yes!\n");25 } else {26 printf("No!\n");27 }28 } else {29 printf("No!\n");30 }31 } 32 33 return 0;34 }