我经历了一些计算机科学测试,但不了解此for循环的结果。
int a, b, counter;
for (a = 1; a <= 10 ; a = a + 1)
{
for (b = 0; b < a; b = b + 1)
{
counter++;
}
}
System.out.println("Counter: " + counter);
第一个for循环迭代10次,但是第二个又如何呢?为什么输出55?
答案 0 :(得分:4)
第一个循环重复10次。对于第一个循环的迭代,第二个循环将迭代:1 time
,2 times
,3 times
.... 10 times
。
说明::在第二个循环中,b
从0
迭代到小于a
。当a
为1
时,将迭代1 time
。当a
为2
时,第二个循环迭代2 times
,当a
为3
时,第二个循环迭代3 times
,依此类推。
所以计数器值为:1 + 2 + 3 + 4 .... + 10 = (10 * (10 + 1))/2 = 55
答案 1 :(得分:0)
内部循环迭代a
次,因此第一次循环将循环1次,最后一次将循环10次。每次此内部循环运行时,计数器都会递增,因此它将运行1 + 2 + ... + 10 = 55次。
答案 2 :(得分:0)
这里的逻辑如下:
c := 0
for a from 1 to 10:
for b from 0 to a:
increment c
print c
内部循环在第一次迭代中迭代一次,在第二次迭代中迭代两次,在第N次迭代中迭代N次。这意味着c递增的次数为1+2+3+4+5+6+7+8+9+10 = 55
。
答案 3 :(得分:0)
通常,公式是
n*(first number + last number)/2
因此,在这种情况下,
10(1 + 10)/2 = 55
如果将最后一个数字更改为例如13,则代码输出91。算术级数为
13(1 + 13)/2 = 91
答案 4 :(得分:0)
第一个for循环迭代10次,但是第二个又如何呢?
第二个循环迭代变量(a
)次。
为什么输出55?
因为这是您添加前十个连续整数(从1开始)的结果。
1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = 55