三、回文数的猜想

来源:互联网 发布:3g移动嵌入式软件开发 编辑:程序博客网 时间:2024/05/20 15:59

回文数就是正着看和反着看都一样的比如12321这种。

这个题目是这样的:

从任意一个两位或者两位以上的数开始,将这个数与它的逆序数(反着读的)相加,得到一个新数,再用新得来的这个数再和逆序数相加,经过若干次之后就可以得到一个回文数了,设计一个程序,由计算机在局部范围验证“回文数猜想”,并把每个步骤都显示一下。

#include <iostream>using namespace std;//拿1992做猜想long fun(long n);//算逆序相加bool judge(long n);int main(){    long  num,rev;    bool res;    cin>>num;    rev=fun(num);    res=judge(rev+num);    while(!res){        cout<<num<<"+"<<rev<<"="<<num+rev<<endl;    num=rev+num;    rev=fun(num);    res=judge(rev+num);    }    cout<<num<<"+"<<rev<<"="<<num+rev<<endl;    return 0;}long fun(long n){//反序的函数long rev;for(rev=0;n>0;n/=10){    rev=rev*10+n%10;  }return rev;}bool judge(long n){if(fun(n)==n)return true;else return false;}
写的特别啰嗦,但是好歹实现了,其实应该在while里头就judge,这样好看并且不容易出错,我这么写了也不改了就,完成任务就得了,初学以完成任务为目的



原创粉丝点击