如果有一个正整数从左、右来读都是一样的,则称为回文式数(简称回数);比如101,32123,
999都是回数。求10000以内的所有回数。
判断的思路就是,通过循环依次把m的个位,十位,百位...上的数取出来,与sum*10相加。这样得到的数sum就是m颠倒之后的数,如果两者相等,那就是回文数。
while(a) { sum=sum*10+a%10; a=a/10; }
程序如下:
#include<stdio.h> int main() { int i;//循环变量 int count=0;//循环计数 int sum;//逆序后这个数字是多少 int a; for(i=1;i<10000;++i) { a=i; sum=0; while(a) { sum=sum*10+a%10; a=a/10; } if(sum==i)//逆序后的数字与原来的数字相比较看是否相等 { printf("%8d",i); count++; if(count%5==0) printf("\n"); } printf("\n"); } return 0; }
时间: 2024-10-19 17:17:43