【发布时间】:2017-12-05 23:20:52
【问题描述】:
由于某种原因,“total += i;”不起作用,当我返回“总计”时,它返回为 0。
long int sumOfGroup(int k) {
long int special = (k * k) + (k - 1);
long int limit = special - ((k-1) * 2);
cout << special << " " << limit << endl;
long int total = 0;
for(int i = special; i <= limit; i - 2){
total += i;
}
return total;
}
int main() {
int k;
cin >> k;
long answer = sumOfGroup(k);
cout << answer << endl;
return 0;
}
如果你不管输入什么都运行这个,答案是 0。我所有的其他数字都是正确的,我很确定它与 for 循环有关。
【问题讨论】:
-
for(int i = special; i <= limit; i - 2)应该是for(int i = special; i <= limit;i= i - 2)? -
@BillF 仍然给出 0 作为输出
-
limit小于special,当然应该是for(int i = special; i >= limit; i -= 2)。那还是应该limit是special + ((k-1) * 2)并增加i代替?或者special和limit是不是搞错了?目前尚不清楚您要做什么 -
special不是总是比limit大吗? -
@NickA 无论是增加还是减少都不起作用