设n为正整数,用大“O”记号,将下列程序段的执行时间表示为n的函数。(1)intsum1(intn){inti,p=1,s=0;for(i=1;i<;=n;i++){p*=i;s+=p;}returns;}
举一反三
- 下列程序段的时间复杂度为。 s=0; for(i=1;i<n;i++) for(j=1;j<n;j++) s+=i*j;
- 下面程序段的时间复杂度为()s=0;for(i=1;i<n;i++)for(j=1;j<i;j++)s+=i*j; A: O(1) B: O(log2) C: O(n) D: O(n3)
- 计算下面程序段中,s=s+p和p*=j语句的执行次数以及该程序段的时间复杂度(设问题规模为n)。 int i=1,j,s=0; while (i++<=n) { int p=1; for (j=1;j<=i;j++) p*=j; s=s+p; }
- 下列程序段的时间复杂度为( )s=0;for(i=1;i<;n;i++)for(j=1;j<;i;j++)s+=i*j 未知类型:{'options': ['O(1)', ' O(logn)', ' O(n)', ' O([img=16x18]17e436db6f18ee9.jpg[/img])'], 'type': 102}
- 假设整型n已输入值。以下不能正确计算1*2*3*...*n的程序段是_______。 (1) for(i=1,s=1; i<=n; i++) s*=i; (2) i=1;s=1; while(i<=n) s*=i++; (3) i=0,s=1; do{ i++,s*=i; }while(i<=n); (4) for(i=1,s=1; ; i++) { s = s*i, if(i==n) break; }