一、题目
求 s=a+aa+aaa+aaaa+aa…a 的值
二、题思路
例如 2+22+222+2222+22222(此时共有 5 个数相加),几个数相加有键盘控制。
分析得出:2+(2* 10+2)+(22* 10+2)
三、代码实现
package basic.example;
import java.util.Scanner;
/**
* Description: 求 s=a+aa+aaa+aaaa+aa...a 的值
*
* @author Eric
* @date 2022/3/29
* @version 1.0
*
* <pre>
* 修改记录:
* 修改后版本 修改人 修改日期 修改内容
* 2022/3/29 Eric 2022/3/29 Create
* </pre>
*
*/
public class BasicFor08 {
/**
* 求 s=a+aa+aaa+aaaa+aa...a 的值
* 思路:
* 例如 2+22+222+2222+22222(此时共有 5 个数相加),几个数相加有键盘控制。
* 分析得出:2+(2* 10+2)+(22* 10+2)
* 每次都是前一项的十倍 + 第一个数 n*10 + n,所以每一次加完需要计算下一次结果
* @param args
*/
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个数:");
int targetNum = scanner.nextInt();
System.out.println("请输入次数:");
int times = scanner.nextInt();
int first = targetNum;
int sum = 0;
for (int i = 0; i < times; i++) {
sum += targetNum;
targetNum = targetNum * 10 + first;
}
System.out.println("和为:" + sum);
}
}
四、结果截图

该博客介绍了一个Java程序,用于计算一个数字(如2)连续拼接自身形成的新数(2, 22, 222等)相加的总和。用户通过键盘输入数字和拼接次数,程序根据分析的规律(每次增加的数是前一项的十倍加首数字)计算结果并输出。
493





