首页 > 试题广场 >

执行下面的程序段,语句3的执行次数为() for (i=

[单选题]
执行下面的程序段,语句3的执行次数为(其中n>1)()
for (i = 0; i <= n-1; i++)   // (1)
    for (j = n; j > i; j--) // (2)
        state;               // (3)


  • n(n+2)/2
  • (n-1)(n+2)/2
  • n(n+1)/2
  • (n-1)(n+2)
推荐
选C。
假设代入法:
  • n=3,外层循环i的取值为0,1,2
  • 当i=0时,内部循环j的取值为3,2,1,所以state执行3次;当i=1时,内部循环j的取值3,2,所以state执行2次;当i=2时,内部循环j的取值为3,所以state执行1次
  • 综上所述:3+2+1=6次。将n=3带入选项中的出C符合结果。

编辑于 2019-05-05 10:36:05 回复(16)
选c,外循环有n次,当i=0,内循环为n次,当i=1,内循环为n-1次,当i=2时,内循环为n-2次,以此类推,总次数为n+(n-1)+(n-2)+......+2+1,就是个等差数列,等于n(n+1)/2。
编辑于 2019-06-15 11:51:57 回复(11)

没人看见1++写错了吗?不是应该是i ++吗?

发表于 2019-05-09 10:10:36 回复(10)
碰到这种问题就这么做

编辑于 2020-09-13 11:38:28 回复(2)
首先这个1++好像不对,改成i++
我觉得这种问题,找俩值直接带入求结果,看哪个公式可以对上就完了,
设:
n=1的时候,外围执行一次,内部执行一次,所以是1次;
--->A:结果是1.5;B:结果是0;C:结果是1;D:结果是0;
这就出来了。。。出来了。。。了!!!!!

编辑于 2018-08-22 10:54:55 回复(4)
令n=1,只有c选项符合。
发表于 2021-11-11 19:26:41 回复(0)
语句1 共执行n次,语句2/3 每次执行n-i次,i是递增的,i从 0 到 n-1,对应的语句2/3执行次数为 n-i,则语句2/3的总次数为: n+(n-1)+(n-2)+...+2+1, 有: n*(n+1)/2
编辑于 2018-12-07 11:22:33 回复(1)
把n假设一个数带进去算一遍不就行了
发表于 2022-05-16 13:57:14 回复(0)
发表于 2021-03-23 13:50:29 回复(0)
直接带入n = 3,执行,选C
编辑于 2022-10-09 16:18:05 回复(1)
此题用代入法最简单,将1代入,程序段执行一次结束。
发表于 2021-01-16 15:01:03 回复(0)
首项加末项乘以项数除以2
发表于 2023-01-05 23:34:01 回复(0)
由于内层循环的条件是外循环的i,执行内循环。要满足J>i,j--.
j是从n一直到0(J>0),i是从0<=n-1。 所以两个条件都是 。(n+0)*(N+1)/2
不是乘,单纯的等差数列求和
编辑于 2021-12-06 12:29:45 回复(0)
直接分析:
i = 0;j =n,n-1,...,2,1,所以state执行n次
i=1; j = n,n-1,...,3,2,所以state执行n-1次
i=2; j = n,n-1,..4,3,所以state执行n-1次
...
i=n-1,j=n,所以state执行1次
共执行(n+1)n/2

发表于 2021-03-12 23:06:43 回复(0)
外层循环执行n次;内层循环,第一次执行n次,第二次执行n-1次......第n次执行1次,这就可以看做是从1加到n,结果就是n(n+1)/2
发表于 2020-08-05 14:42:13 回复(0)
将n随意取几个值 带进去算😂
发表于 2018-09-11 19:10:54 回复(1)

c项显然不对,当n = 2 时,c项是不对的,换言之n为偶数时都不成立。


发表于 2018-09-11 15:14:30 回复(0)
当外层循环i=0时,内层循环需要执行n次。(n-0)
当外层循环i=1时,内层循环需要执行n-1次。(n-1)
...
当外层循环i=n-1时,内层循环需要执行n-(n-1)=1次。
所以总次数:n+(n-1)+(n-2)+...+1 = n(n+1)/2
编辑于 2023-05-01 09:36:06 回复(0)
相当于倒着的前n项和
发表于 2022-11-28 15:17:23 回复(0)
假设n等于6,外层循环i的取值依次为0,1,2,3,4,5,循环6次。内层循环第一次j=6,j>0(i=0),执行(3)语句,外层第一次循环,内层循环j依次为6,5,4,3,2,1,循环6次;以此类推,外层循环第二次时(i=1),内层循环循环j依次取值为6,5,4,3,2,循环5次…i=5时,内层循环j的值为6,循环1次。因此,内层循环次数总共为(6+5+4+3+2+1)次(即:(n+1)/2)。现在,把n=6换成通用变量,则语句(3)执行次数为外层循环总数与内层循环总数的乘积:n(n+1)/2
发表于 2022-09-01 08:39:32 回复(0)
计算这种事应该交给计算机
发表于 2023-05-09 11:26:19 回复(0)