无需数组实现行数值求和:幂次表Java程序修改问询
解决方法:边计算边累加,无需数组
嘿,你完全不用纠结数组的事儿!咱们可以在处理每一行(也就是每个x值)的时候,直接维护一个累加变量,计算每个幂次的同时就把它加到总和里,最后一行输出完幂次后,直接把总和打出来就行。这样代码既简洁又高效,完全不用额外存数组。
先补全并修改你的代码:
public class PowerTable { // 类名首字母大写更符合Java规范哦 public static void main(String[] args) { final int NMAX = 5; final double XMAX = 10; // 打印表头(幂次n) for(int n = 1; n <= NMAX; n++) { System.out.printf("%10d", n); } // 表头最后加个"Sum"列,让表格更清晰 System.out.printf("%15s%n", "Sum"); // 遍历每个x值,打印每行的幂次和总和 for(double x = 1; x <= XMAX; x++) { double rowSum = 0; // 每行的总和,初始化为0 // 计算并打印x的1到NMAX次幂 for(int n = 1; n <= NMAX; n++) { double power = Math.pow(x, n); System.out.printf("%10.2f", power); // 保留两位小数提升可读性 rowSum += power; // 把当前幂次值直接加到总和里 } // 打印当前行的总和 System.out.printf("%15.2f%n", rowSum); } } }
关键改动说明:
- 新增
rowSum变量:在每个x的循环开始时初始化,每次计算完x^n就把值累加到这个变量里,全程不用额外存储所有幂次值。 - 表头补充"Sum"列:让表格的结构更清晰,读者一眼就能看懂最后一列的含义。
- 格式化输出:用
%.2f保留两位小数,避免输出过长的小数位,让表格更整齐。 - 逻辑连贯:计算、打印、求和一步到位,完全不用绕弯子,代码可读性拉满。
这样改完之后,既满足了每行输出总和的需求,又完全不用搞复杂的数组存储,逻辑直观又简洁😉
内容的提问来源于stack exchange,提问作者Steve
相关产品推荐
相关产品推荐

