龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

回文数的形成

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
回文数的形成规则不知道数学上有没有证实。假如有的话,朋友可以告诉我,这里通过编程验证。 规则:任意的一个的十进制的整数,将其转过来后和原来的整数相加,得到新的整数后

回文数的形成规则不知道数学上有没有证实。假如有的话,朋友可以告诉我,这里通过编程验证。

  规则:任意的一个的十进制的整数,将其转过来后和原来的整数相加,得到新的整数后重复以上步骤,最终可以得到一个回文数。

#include

  #define MAX 2147483648 //限制M+N的范围

  long re(long int a)//求输入整数的反序

  {

   long int t;

   for(t=0;a>0;a/=10)//将整数反序

   t=t*10+a%10;

   return t;

  }

  int nonre(long int s)//判定给定的整数是否为回文数

  {

   if(re(s)==s)

   return 1;//是返回1

   else

   return 0;//不是返回0

  }

void main()

  {

   long int n,m;

   int count=0;

   printf("please input a number optionaly:");

   scanf("%ld",&n);

   printf("The genetation process of palindrome:

");

   while(!nonre((m=re(n))+n))//判定整数与其反序相加后是否为回文数

   {

   if((m+n)>=MAX)//超过界限输出提示信息

   {

   printf("input error,break.

");

   break;

   }

   else

   {

   printf("[%d]:%ld+%ld=%ld

",++count,n,m,m+n);

   n+=m;//累加

   }

   }

   printf("[%d]:%d+%ld=%ld

",++count,n,m+n);

   printf("Here we reached the aim at last.

");//输出最好得到的回文数

  }

  

  

精彩图集

赞助商链接