首页 > 代码库 > 输出1-256之间一个数的平方是回文数

输出1-256之间一个数的平方是回文数

方法;

  通过一个函数求出这个数一共是几位数

  循环取余数依次放入临时数组

  通过数组下标循环判断

 1 //功能:打印所有不超过 n( n<256)的其平方具有对称性的数(也称回文数)
 2 
 3 
 4 
 5 #include<stdio.h>
 6 #include<stdlib.h>
 7 
 8 int judg(int);
 9 int getBit(int);        //返回整数值的位数
10 
11 void main(){
12     for (int i = 0; i < 256; i++)
13     {
14         int flag = judg(i*i);    //进入函数判断是否为回文数 1为回文,0为非回文
15         if (flag == 1)
16             printf("%d * %d = %d \n", i, i, i*i);
17     }
18     system("pause");
19 }
20 
21 int judg(int n){
22     int a[10] = { 0 };
23     int t = getBit(n);//得到一共有几位数
24     for (int i = 0; i < t; i++){            //将每一位数传给数组a
25 
26         a[i] = n % 10;//取余数 123->3 2 1
27         n /= 10;//123/10->12 1
28     }
29     /*for (int i = 0; i < t; i++){
30 
31     printf("%d",a[i]);
32     }*/
33 
34     int flag = 1;                            //标示符flag 1位回文
35     for (int i = 0; i<t / 2; i++){            //利用数组下标判断是否为回文数
36 
37         if (a[i] != a[t - 1 - i]){
38             flag = 0;
39             break;
40         }
41     }
42     return flag;
43 }
44 
45 //得到数字有几位数
46 int getBit(int n){
47     int x = 0;
48     while (n > 0){
49         x++;
50         n /= 10;
51     }
52     return x;
53 }

技术分享

 

输出1-256之间一个数的平方是回文数