内循环运行多少次?
How many time is the inner loop running?
for(i=1, count=0;i<=n;i=i+k)
for(j=1;j<=k;j++)
count++;
我不知道内部for循环执行了多少次。
我需要 n 和 k
的答案
让我们分别看一下这两个循环。
外层循环从 i=1
开始,每次迭代递增 k
,直到大于 n
。换句话说,它可以 运行 n/k
次,或者准确地说,floor(n/k)
次,因为循环不能 运行 非整数次。
内部循环相对简单 - 它从 j=1
开始,每次迭代递增 1,直到它大于 k
,总共 k
次。
将这两个放在一起,你会得到 floor(n/k)*k
。
编辑:
正如评论中指出的那样,如果 n>=k
,则此分析为真。如果 n<k
外循环将 运行 恰好一次。即,总次数 运行 为:max(1, floor(n/k))*k
.
答案:floor(n/k) * k
。为了准确地检查它,我想你可以用 print 打印。
for(i=1, count=0;i<=n;i=i+k)
for(j=1;j<=k;j++)
count++;
我不知道内部for循环执行了多少次。 我需要 n 和 k
的答案让我们分别看一下这两个循环。
外层循环从 i=1
开始,每次迭代递增 k
,直到大于 n
。换句话说,它可以 运行 n/k
次,或者准确地说,floor(n/k)
次,因为循环不能 运行 非整数次。
内部循环相对简单 - 它从 j=1
开始,每次迭代递增 1,直到它大于 k
,总共 k
次。
将这两个放在一起,你会得到 floor(n/k)*k
。
编辑:
正如评论中指出的那样,如果 n>=k
,则此分析为真。如果 n<k
外循环将 运行 恰好一次。即,总次数 运行 为:max(1, floor(n/k))*k
.
答案:floor(n/k) * k
。为了准确地检查它,我想你可以用 print 打印。