for(i = 1; i<=n; i*=2)
for(j=1; j<=i; j++)
laugh++;
请解释一下这里laugh++执行了多少次?
设循环k次,则有 (
<=n 且
是2的倍数)
内层for循环上限i的取值为1 2 4 8 .... ,是一个等比数列;
所以,总循环次数为 Sn = 2* (1-)/(1 - 2) + 1 =
- 1, 代入k值有:
(
<=n 且
是2的倍数)
当n=11时,=8,代入得到次数为15;
本文详细解析了一个包含两层for循环的代码片段中,变量laugh++执行的总次数。通过数学公式推导,确定了当n等于11时,laugh++被执行了15次。文章展示了如何将循环问题转化为等比数列求和的问题。
for(i = 1; i<=n; i*=2)
for(j=1; j<=i; j++)
laugh++;
请解释一下这里laugh++执行了多少次?
设循环k次,则有 (
<=n 且
是2的倍数)
内层for循环上限i的取值为1 2 4 8 .... ,是一个等比数列;
所以,总循环次数为 Sn = 2* (1-)/(1 - 2) + 1 =
- 1, 代入k值有:
(
<=n 且
是2的倍数)
当n=11时,=8,代入得到次数为15;
887
5119

被折叠的 条评论
为什么被折叠?