一个简单的基础,想不明白,请高人指点。
求出以下算法的时间复杂度void example(into n){
int i=1,j=100;
while(i<n){
++j;
i+=2;
}
}
答案中提到当i<n时会一直执行语句,假设i在自增m次结束,则有i=1+2m,此时有1+2m+x=n
以上不懂,而且后面还说i>n时循环结束,此处用x来将1+2m修正为n,x为常数,也不太懂
#include<stdio.h> int main() { int i=1,j=100,m=0,n; //添加m作为计数用 scanf("%d",&n); while(i<n){ ++j; i+=2; m++; //每循环一次m+1 printf("i目前的值为%d,你输入的是%d,目前i递增了%d次\n",i,n,m); } printf("i的最终值为%d,你输入的是%d,最终i递增了%d次\n",i,n,m); return 0; }