我試圖做一段接受「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