输出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 }

时间: 2024-08-01 10:45:12

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

java编写输入一个数判断是否是回文数,所谓回文数比如121,1221,6778776

package com.hao947; import java.util.Scanner; public class demo5 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int x = 0; x = scanner.nextInt(); System.out.println("请输入一个4-8位的数"); int dig[] = new int[10]; i

05:素数回文数的个数

描述 求11到n之间(包括n),既是素数又是回文数的整数有多少个. 输入 一个大于11小于1000的整数n.输出11到n之间的素数回文数个数. 样例输入 23 样例输出 1 提示回文数指左右对称的数,如:292,333. 来源 06计算概论课 代码 1 略 2 using namespace std; 3 bool sunum(int a) 4 { 5 for(int i=2;i<=sqrt(a);i++) 6 { 7 if(a%i==0) return 0; 8 } 9 return 1; 1

poj2928:素数回文数的个数

总时间限制: 1000ms 内存限制: 65536kB 描述 判断11到任何一个小于1000大于11的整数之间,既是素数又是回文数的整数的个数. 输入 输入大于11小于1000的整数. 输出 11到输入的这个数之间的既是素数又是回文数的个数. 样例输入 999 543 样例输出 16 10 提示 测试数据有多组,用while()循环输入. 回文数即为左右对称的数,如:292,333. 本题数据规模不大,可以直接先把素数标记出来再进行判断. 代码如下 #include <iostream> #i

javaScript实现回文数、水仙花数判断和输出斐波那契数列

    // 判断一个数是不是回文数                    // 方法一:先将数字转换成字符串,然后依次判断第一个和最后一个数字,第二个和倒数第二个数字...是否相等     function PalindromeNumber1(num){         var str = num.toString();         var flag = true;         var len = str.length;         for(var i = 0; i < (len 

判断一个数是否为回文数,字符串是否为回文字符串

使用C语言编写程序 判断一个数是否为回文数.(ps:回文数也是一个数字,数字的特点是正反序是同一个数字,如12321,3443就是回文数). 要判断该数字是否为回文数,可以通过模除得到该数的反序数字,进行比较是否相等来判读. 具体实现如下: void Practice() { int num, value, flag, var; value = 0; flag = 1; scanf("%d", &num); var = num; while(num) {//value存储num

【c语言】判断一个数是不是回文数

//判断一个数是不是回文数 #include <stdio.h> #include <assert.h> int panduan(int *p) { int t = 0; int n = *p; assert( *p != NULL ); //每次取出最后一个数乘10加到前边去 while( *p != NULL ) { t = t * 10 + *p % 10; *p = *p / 10; } //如果是回文数就会相等 if( t==n ) { return 1; } else

判断一个数的n进制是不是回文数

#include<stdio.h> int circle(int m,int n)//该函数判断m的n进制数是否为回文数 { int s=0,l=m; while(l) { s=s*n+l%n;//该语句是反顺序计算数值 l/=n; } return s==m;//如果是回文数,那么正反顺序的数字应该是相等的 } void main() { int num[]={434,783,909}; int sys[]={2,8,10,16}; int i,j; for(i=0;i<3;i++)

c语言求字符串中大写字母个数,单词个数,子串个数及一个整数是否为回文数

#include <stdio.h> #include <ctype.h> #pragma mark 统计从终端输入的字符中每个大写字母的个数.用#号作为输入结束标志 int main() { int num[26] = {0}, i; char c; while ((c = getchar())!='#') { if (isupper(c)) { num[c-65]++; } } for (int i = 0; i<26; i++) { if (num[i]) { prin

判断一个数中最大回文数的长度

判断一个数中最大回文数的长度 :例如12332112345654321中最大的回文数是12345654321,长度为11 public static void palindrome(String str) { int len = str.length(); int max = 1; for(int i = 1; i < len; i++){ int low = i-1; //偶数情况 int high = i; while(low >= 0 && high < len &