今晚的月色温柔

导航

利克瑞尔数

【问题描述】利克瑞尔数(Lychrel Number)指的是将该数各数位逆序翻转后形成的新数相加,并将该过程反复迭代后,结果永远无法是一个回文数的自然数。57就是一个非利克瑞尔数:57+75=132, 132+231=363,363是一个回文数。请编写程序,输入一个自然数(非利克瑞尔数),请计算其最终的回文数是多少及每次迭代过程。注意:假设输入的整数和中间产生的整数都不超过int数据类型的表示范围。

【输入形式】从标准输入读入一个正整数。

【输出形式】在标准输出上输出迭代过程和最终的回文数。分行输出每次迭代过程:先输出迭代次数(从1开始计数),后跟英文冒号:,然后是两数相加等于某数的等式,其中的符号都是英文符号,没有空格。在最后一行输出最终得到的回文数。若输入的整数本身就是回文数,则不输出任何迭代过程,直接输出该回文数。

【样例输入】109

【样例输出】

1:109+901=1010
2:1010+101=1111
1111

【样例说明】

输入:

909

输出:

909

c++代码:

#include <iostream>

using namespace std;

int main(){

       int a,b,c,i,e;

       int item;

       int n=0;

       int num;

       int d=0;

       int f=0;

       cin>>num;

       a=num;

       b=0;

       while(a!=0){

              c=a%10;

              b=b*10+c;

              a=a/10;

       }

       if(num==b){

              cout<<num<<endl;

       }else{

              for(item=1;n==d;item++){

              n=num+b;

              i=n;

              cout<<item<<":"<<num<<"+"<<b<<"="<<n<<endl;

              while(i!=0){

                     e=i%10;

                     d=d*10+e;

                     i=i/10;

                     f=d+n;

                    

       }

              }cout<<item<<":"<<n<<"+"<<d<<"="<<f<<endl;

              cout<<f<<endl;

              }

       return 0;

}

java代码:

修改之后:

package fuxi;
import java.util.Scanner;
public class W {
static int nixu(int n) {
int g,r=0,a=n;
while(a!=0) {
g=a%10;//g是个位数
r=r*10+g;//r是逆序数,如果逆序数等于n,即验证数是回文数
a=a/10;//a从百十个一一遍历,算到0为止
}
return r;
}
public static void main(String[] args) {
Scanner inScanner=new Scanner(System.in);
int n=inScanner.nextInt();
int r=nixu(n);
if(r==n) {System.out.print(n);}//输出回文数,比如909
/*输入109
1:109+901=1010
2:1010+101=1111
1111*/
else
{int p=n+r;//n是原数109,r是逆序数901,p是1010
int i=1;
while(p!=nixu(p))//需要判断第一次迭代之后的数是否为回文数,是就while循环结束直接输出
{
System.out.println(i+":"+n+"+"+r+"="+p);//1:109+901=1010
n=p;
r=nixu(p);
i++;
break;
}
System.out.println(i+":"+n+"+"+r+"="+(n+r));//2:1010+101=1111

System.out.println(n+r);
}
}
}

posted on 2020-12-12 16:32  1022  阅读(1436)  评论(0编辑  收藏  举报