k=0; for(i=1;i<=;i++){ for(j=i;j<=n;j++) k++ } k++ 为什么运行了n(n+1)/2 次阿
2个回答
展开全部
两层循环嵌套,为了好理解,我标记成a,b
a:for(i=1;i<=n;i++)
{
b: for(j=i;j<=n;j++)
}
第一轮:a中的i=1,b为 for(j=1;j<=n;j++) b运行了1````n,所以是n次
第二轮:a中的i=2,b为 for(j=2;j<=n;j++) b运行了2````n,所以是n-1次
第三轮:a中的i=3,b为 for(j=3;j<=n;j++) b运行了3````n,所以是n-2次
。。。。
第n轮:a中的i=n,b为 for(j=n;j<=n;j++) b运行了n````n,所以是1次
所以总次数是,1+2+......n(次)= n(n+1)/2
a:for(i=1;i<=n;i++)
{
b: for(j=i;j<=n;j++)
}
第一轮:a中的i=1,b为 for(j=1;j<=n;j++) b运行了1````n,所以是n次
第二轮:a中的i=2,b为 for(j=2;j<=n;j++) b运行了2````n,所以是n-1次
第三轮:a中的i=3,b为 for(j=3;j<=n;j++) b运行了3````n,所以是n-2次
。。。。
第n轮:a中的i=n,b为 for(j=n;j<=n;j++) b运行了n````n,所以是1次
所以总次数是,1+2+......n(次)= n(n+1)/2
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询