我试图做一段接受“n”输入的代码,计算第n行奇数三角形上的数字总和,如下所示:CodeWars - 奇数的总和 - For循环
1
3 5
7 9 11
13 15 17 19
21 23 25 27 29
等,所以对于n = 3
,总和将7 + 9 + 11
即27
我知道是n不仅是行号,但也等于该行号的数目。所以n = 3
也有3个奇数。因此,我认为我可以得到该行的第一个数字,然后循环添加两个到前一个数字然后求和。
我在下面的代码不起作用,所以对于n=43
的输入,我的代码计算出总和为3570
,而它实际上等于79507
。
public static int rowSumOddNumbers(int n) {
int firstNum = (2 * n) - 1;
int total = 0;
for (int i = 0; i < n; i++) {
total += (firstNum + 2);
}
return total;
}
我相信我的问题是,我不是当前号码+ 2相加在一起之前的数量应该是因为我需要存储先前循环的结果不是把它添加到当前循环的结果?
任何帮助表示赞赏。
是什么让你为'firstNum'提出'(2 * n) - 1'?这显然是错误的。 – bcsb1001