设为首页 加入收藏

TOP

C++回文数的形成
2014-11-23 21:26:57 】 浏览:437
Tags:文数的 形成

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


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


  #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:\n");


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


  {


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


  {


  printf("input error,break.\n");


  break;


  }


  else


  {


  printf("[%d]:%ld+%ld=%ld\n",++count,n,m,m+n);


  n+=m;//累加


  }


  }


  printf("[%d]:%d+%ld=%ld\n",++count,n,m+n);


  printf("Here we reached the aim at last.\n");//输出最好得到的回文数


  }


  相关链接:


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇对C++程序设计中函数重载的探讨 下一篇使用虚拟变量和格式说明符进行X64..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目