守形数

Posted Just_for_Myself

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了守形数相关的知识,希望对你有一定的参考价值。

 题目截图:

 

思路:

  首先,只有尾数为 0,1,5,6 的数才可能为守形数,所以其他可以直接排除。然后对其他的数进行判断即可。

 

代码如下:

 1 /*
 2     守形数
 3 */
 4 
 5 #include <stdio.h>
 6 #include <string.h>
 7 #include <math.h>
 8 #include <stdlib.h>
 9 #include <time.h>
10 #include <stdbool.h>
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 }

 

以上是关于守形数的主要内容,如果未能解决你的问题,请参考以下文章

守形数

守形数

1183.守形数

华科机考: 守形数

P1074靶形数独

code1174 靶形数独