• 2021-04-14
    【简答题】分析以下算法的时间复杂度。 void func(int n) { int i=0,s=0; while (s
  • O(n1/2)

    内容

    • 0

      假设有定义 int s=0,i=1; 则退出以下循环后i的值为()。 while (s<=10) { s=s+i*i; i++; }

    • 1

      中国大学MOOC: #include <stdio.h>#define N (sizeof(s)/sizeof(s[0]))struct porb {char *name; int age;} s[]={"LiHua",18,"WangXin",25,"LiuGuo",21};void f(struct porb a[], int n){int i;for (i=0;i<n;i++)printf ("%s:%d\n", a[i].name, a[i].age);}int main(){f(s, N); return 0;}

    • 2

      下列程序段可以正确运行的有: A: int i,s,x;s=0;i=0;while(1){ scanf("%d",&amp;x); if(x!=-1) { s=s+x; i++; } else break;}printf("ave=%d\n",s/i); B: int i,s,x;s=0;i=0;scanf("%d",&amp;x);while(x!=-1){ s=s+x; i++; scanf("%d",&amp;x);}printf("ave=%d\n",s/i); C: int i,s,x;s=0;i=0;while(1){ scanf("%d",&amp;x); if(x==-1) break; s=s+x; i++; }printf("ave=%d\n",s/i);

    • 3

      下面程序段的时间复杂度是。 i=s=0; while(s<n) { i++; s+=i; }

    • 4

      程序段 i=0;s=0; while(++i<=n){int p=1; for(j=0; j<i; j++) p*=j; s=s+p; }的时间复杂度为