求 的值,其中 是一个数字(0~9 之间的整数)。例如:当 时,计算
相加的项数 由用户通过键盘输入控制
这个问题的核心在于如何构造每一项。观察数列:
第 1 项:
第 2 项:
第 3 项:
...
第 项:由 个数字 拼接而成,其数值为:
请输入a的值
2
请输入n个数
5
24690解释:
再例如:
请输入a的值
3
请输入n个数
4
3702因为:
设第 项为,则:
因此总和为:
import java.util.Scanner;
public class Demo08 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输入a的值");
int a = in.nextInt();
System.out.println("请输入n个数");
int n = in.nextInt();
long s = 0; // 使用 long 防止溢出
long current = 0; // 当前项
for (int i = 1; i <= n; i++) {
current = current * 10 + a; // 构造 aa...a(i 个 a)
s += current;
}
System.out.println(s);
in.close();
}
}不修改原始 a,而是用 current 动态构建每一项。
使用 long 类型可支持更大的(如 时,最后一项有 10 位,int 会溢出)。
逻辑清晰,符合题意。
该问题属于数字模式构造类编程题,常见于初学者练习循环与字符串 / 数值转换。虽然形式简单,但能有效训练对“数位构造”和“累加逻辑”的理解