蓝桥杯准备(1.4)回文数

本文介绍了一种通过程序验证数学猜想的方法,即对于任意正整数,通过不断将其与反转后的自身相加,直至得到回文数的过程。文章提供了一个具体的实例,演示了如何从一个非回文数通过变换得到回文数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个正整数,如果交换高低位以后和原数相等,那么称这个数为回文数。比如 121121121,233223322332 都是回文数,13,456713,456713,4567 不是回文数。
任意一个正整数,如果其不是回文数,将该数交换高低位以后和原数相加得到一个新的数,如果新数不是回文数,重复这个变换,直到得到一个回文数为止。例如,575757 变换后得到 132(57+75)132(57 + 75)132(57+75),132132132 得到 363(132+231)363(132 + 231)363(132+231),363363363 是一个回文数。
曾经有数学家猜想:对于任意正整数,经过有限次上述变换以后,一定能得出一个回文数。至今这个猜想还没有被证明是对的。现在请你通过程序来验证。
输入
349
输出
3
349—>1292—>4213—>7337

import java.util.Scanner;
public class 回文数 {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
StringBuffer result=new StringBuffer();
int n=scan.nextInt();
int count=0;
while(true){
StringBuffer sb=new StringBuffer(n+"");
StringBuffer sb1=new StringBuffer(n+"");
sb1.reverse();
if(sb.toString().equals(sb1.toString())){
result.append(sb);
break;
}
else{
count++;
result.append(n+"—>");
n=n+Integer.parseInt(sb1.toString());
}
}
System.out.println(count);
System.out.println(result.toString());
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值