第3个回答 2008-09-06
(1) n*(n+1)/2
for (i=0;i<n;i++)
for (j=i;j<n;j++) x++;
//i=0执行n次(j=0~n-1)
//i=1执行n-1次(j=1~n-1)
......
总次数: n+(n-1)+(n-2)+...+1 也即 1+2+3+...+n =n(n+1)/2
(2) n*n*n
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
for (k=1;k<=n;k++)
x++;
//k 循环执行 n 次, j 循环执行 n 次, i 循环执行 n 次
//所以总次数为 n次的n次的n次, 即 n*n*n , 也即 n^3
(3) (n-1)*(n-1)+(n-1)= (n-1)*n
for (i=1;i<n;i++)
for (j=1;j<n;j++) x++;
//j 循环执行 n-1 次(1~n-1) , i 循环执行 n-1 次;
//这里总次数为 (n-1)*(n-1)
for (k=1;k<n;k++) x++;
// 这里执行 (n-1)
总次数为 (n-1)*(n-1)+(n-1)=(n-1)*n
(4) (n-1)+(n-1)/2+(n-1)/4+(n-1)/8+...(/为整除)
for (i=1;i<n;i++)
{
j=i;
while (j<n) j*=2;
}本回答被提问者采纳