计算下面程序段中,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;
}
int i=1,j,s=0;
while (i++<=n)
{ int p=1;
for (j=1;j<=i;j++)
p*=j;
s=s+p;
}
举一反三
- 【其它】在下面的程序段中, s=s+p 语句的执行次数为 ___ 1 ___ , p*=j 语句的执行次数为 ___ 2 ___ ,该程序段的时间复杂度为 ___ 3 ___ 。 int i=0,s=0,j,p; while(++i<=n) { p=1; for(j=1;j<=i;j++) p*=j; s=s+p; } (3.0分)
- 程序段 i=0;s=0; while(++i<=n){int p=1; for(j=0; j<i; j++) p*=j; s=s+p; }的时间复杂度为
- 下列程序段的时间复杂度为。 s=0; for(i=1;i<n;i++) for(j=1;j<n;j++) s+=i*j;
- 下面程序段的时间复杂度是( )。 s =0; for(i =0; i<n; i++) for(j=0;j<n;j++) s +=B[i][j]; sum = s ;
- 下面程序的时间复杂为() for(i=1,s=0; i<=n; i++) {t=1;for(j=1;j<=i;j++) t=t*j;s=s+t;}