任务描述:
求公式Sn=a+aa+aaa+…+aa…aaa(有n个a)之值,其中a是一个数字,为2。 例如,n=5 时=2+22+222+2222+22222,n 由键盘输入(n<=5)。
任务要求:
package march0317_0331;import java.util.Scanner;public class m240324 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("输入n:");int n = scanner.nextInt();// 检查输入的n是否在有效范围内(0到5之间)if (n < 0 || n > 5) {System.out.println("输入错误");return;}long sum = 0; // 用于存储数列项的总和for (int i = 1; i <= n; i++) {long currentTerm = 2; // 当前项的初始值为2// 计算当前项的值,将2连接i次for (int j = 0; j < i; j++) {currentTerm *= 10;currentTerm += 2;}sum += currentTerm; // 将当前项累加到总和中}System.out.println("Sn = " + sum); // 输出结果}
}
双重for循环在这里的作用是:
- 创建一个特殊的数列:这个数列由很多个“2”组成,每个数都是由不同数量的连续“2”拼接起来的。比如数列的第一项是“2”,第二项是“22”,第三项是“222”,以此类推。
- 计算这个数列的总和:我们要把数列里所有的这些由“2”组成的数加在一起。
为了实现这两个目标,我们使用两个嵌套在一起的循环:
外层循环(用变量 i
表示):
- 它负责数列中的每一项,也就是从第一个“2”开始,一直到最后一个由很多个“2”组成的数。
- 每次外层循环执行一次,就相当于数列中的项数增加1。
内层循环(用变量 j
表示):
- 它负责构建当前项(由
i
个“2”组成)的具体数值。 - 每次内层循环执行一次,就在已经生成的部分数值后面再添加一个“2”。
两层循环一起工作:
- 外层循环说:“现在我们要处理数列的第
i
项。” - 内层循环响应:“好的,那我来帮您生成由
i
个‘2’组成的数。” - 内层循环重复运行
i
次,每次都添加一个“2”,直到生成完整的项值。 - 这个项值被加到总和变量
sum
中。 - 外层循环继续前进到下一项,重复上述过程,直到所有项都处理完毕。
最后,总和变量 sum
中存储的就是整个特殊数列的和。
总结:双重for循环是为了按照特定规则生成一系列特殊的数(由连续“2”组成),并把这些数逐一加起来求和。外层循环管理数列中的项数,内层循环负责构造每个项的具体数值。