一道关于数据执行次数的有关问题
一道关于数据执行次数的问题!
问题一:
1.for(i=1;i<=n;i++);
2. for(j=1;j<=i;j++);
3. for(k=1;k<=j;k++);
4. x++;
问第四条语句执行的次数。
答案是n^2(n+1)/2
求问具体是怎么算的?
问题二:
1.for(i=1;i<=n;i++);
2. for(j=1;j<=n;j++);
3. for(k=1;k<=j;k++);
4. x++;
问第四条语句执行的次数。
答案是n(n+1)(n+2)/6
求问具体是怎么算的?
小弟感激不尽啊!!!!
------解决方案--------------------
哈哈 如何就能 看出
【i循环n次,j循环(n+1)/2次,k循环(n+2)/3次】呢?解释下啊
第一题可以这么考虑
最里层两个嵌套for循环正好是i*(i+1)/2次
考虑最外层的for循环的话那么就是
n
Σ(i*(i+1)/2) 这样算出来 就是 n(n+1)(n+2)/6
i=1
问题一:
1.for(i=1;i<=n;i++);
2. for(j=1;j<=i;j++);
3. for(k=1;k<=j;k++);
4. x++;
问第四条语句执行的次数。
答案是n^2(n+1)/2
求问具体是怎么算的?
问题二:
1.for(i=1;i<=n;i++);
2. for(j=1;j<=n;j++);
3. for(k=1;k<=j;k++);
4. x++;
问第四条语句执行的次数。
答案是n(n+1)(n+2)/6
求问具体是怎么算的?
小弟感激不尽啊!!!!
------解决方案--------------------
哈哈 如何就能 看出
【i循环n次,j循环(n+1)/2次,k循环(n+2)/3次】呢?解释下啊
第一题可以这么考虑
最里层两个嵌套for循环正好是i*(i+1)/2次
考虑最外层的for循环的话那么就是
n
Σ(i*(i+1)/2) 这样算出来 就是 n(n+1)(n+2)/6
i=1