问题描述
- 这一步执行了多少次?求解释
-
@算法大牛:设n为正整数。试确定下列各程序段中前置以记号@的语句的频度设n为正整数。试确定下列各程序段中前置以记号@的语句的频度:
for(i=1; i<=n; i++) {for(j=1; j<=i; j++) { for(k=1; k<=j; k++) @ x += delta; }
答案是
(5) 1+(1+2)+(1+2+3)+...+(1+2+3+...+n),
看不懂,求解释?谢谢
解决方案
n=1时, 第一次外循环 整个循环体执行1次;
n=2时,在重复第一次循环基础上再叠加执行两次循环所以是(1+2)
n=3时类推 (1+2+3)
n=n时 (1+2+3+..+n)
所以总循环次数就是 1+(1+2)+(1+2+3)+..+(1+2+3+..+n)
解决方案二:
答案是错的
1+(1+(1+2))+(1+(1+2)+(1+2+3))+......+(1+(1+2)+(1+2+3)+...+(1+2+..+n))
括号中间+是i的循环n个
最外层的括号是j的循环
括号内的括号是k的循环
解决方案三:
你问的是框内的,我写的是总的
时间: 2024-08-01 06:50:26