程序段中语句x=x+y的执行的频率是( )int x,y; x=0;y=0; for(int i=1;i<=n;i++) for(int j=1;j<=i;j++) for(int k=1;k<=j;k++) x=x+y;
A: n*(n+1)*(2n+1)/6
B: n*(n+1)*(n+2)/6
C: n*(n+1)*(2n+3)/6
D: n*(n+1)*(n+4)/6
A: n*(n+1)*(2n+1)/6
B: n*(n+1)*(n+2)/6
C: n*(n+1)*(2n+3)/6
D: n*(n+1)*(n+4)/6
举一反三
- 给出下列算法中语句的时间复杂度 x = 0; y = 0; for (int i = 1; i <= n; i++) for (int j = 1; j <= i; j++) for (int k = 1; k <= j; k++) x=x+y;
- 请问以下方法的时间复杂度是多少?int n = 10;for (i = 1; i < n; ++i) { for (j = 1; j < n; j += n / 2) { for (k = 1; k < n; k = 2 * k) { x = x + 1; } }} A: O(n^3) B: O(n2logn) C: O(n(logn)*2) D: O(nlogn)
- 下列算法suanfa1中语句x=x*2;的执行次数是。voidsuanfa1(intn){inti,j,x=1;for(i=1;i<=n;i++)for(j=i;j<=n;j++)x=x*2;printf(%d,x);}() A: n(n-1)/2 B: n(n+1)/2 C: n<sup>2</sup> D: nlog2n
- /*【程序填空】题目:编程序输出从键盘输入的n个数中的素数及其个数*/#include "stdio.h"int prime(int x){ int i,k=1; if(x<2) k=0; for(i=2;i<=x/2;i++)/***********SPACE***********/ if(【?】) k=0;/***********SPACE***********/ 【?】; }main() {/***********SPACE***********/ int i,n,x,【?】; scanf("%d",&n); for(i=1;i<=n;i++) {scanf("%d",&x);/***********SPACE***********/ if(【?】) {printf("%4d",x); k++; } } printf("\n%4d\n",k); }
- 分析以下算法的时间复杂度。void fun(int n){ int i,j,k; for (i=1;i<= n;i++) for (j= 1;<= n;j++) . { k=1; while (k<=n) k=5*k;}