这个语句频度怎样做??

来源:百度知道 编辑:UC知道 时间:2024/09/26 01:27:49
int i = 1;
do {
for ( int j = 1;j <= n; j++ )
{ i = i + j; }
}while(i<100+n);

好难的作业啊!!

分析一下就明白了
首先j每次for肯定执行n次
然后判断i是否>=100+n
是则跳出,否则继续

所以频度也就是n*x x就是需要做几次do while才会退出
在第一次for结束以后
i=1+n(n+1)/2
假设有第二次,i=1+n(n+1),显然i经过一次for,增加n(n+1)/2
列出不等式
1+n(n+1)/2*x>=100+n
x>=(198+2n)/(n(n+1))
所以对右式上取整,就得到x

因此,频度=(198+2n)/(n(n+1))上取整*n