大一C语言问题,求帮助。

C语言中求满足条件2^1+2^2+… +2^n<1000的最大的 n

#include <stdio.h>
int main()
{
    int sum = 0;
    int item = 2;
    int n = 1;
    do
    {
        sum += item;
        item *= 2;
        n++;
    }while(sum+item < 1000);
    printf("%d",n-1);
}

#include<stdio.h>
 
int main()
{
int n,s;
s=n=0;
while(s<1000)
{
++n;
s+=n*n;
}
printf("n=%d\n",n-1);
return 0;
}


#include <stdio.h>
#include <math.h>
int main(){
    int s=-1;
    int i=0;
    for (i = 0; s < 1000; i++)
    {
        s+=pow(2,i);
    }
    printf("%d",i);
}
int n=1,sum=0,a=2;
while(sum<1000)
{
    sum+=a;
    a*=2;
    n++;
}
print("%d",--n);

int s=0,temp=1;
int n;
for(n=1;s<1000;n++)
{
temp=2*temp;
s=s+temp;
}
cout<<n-1;

while循环计算再判断就可以了


 
#include<stdio.h>
#include<math.h>
int main(){
    int i, sum = 0;
    for(i = 1; sum < 1000; i++){
        sum += pow(2, i);
    }
    printf("%d", i - 2);
    return 0;
}