问题标题: 1604

1
0

0
已采纳
王子翔
王子翔
新手光能
新手光能

需要用while来循环

    while(s<n)
    {
        i++;
        s*=2;
    }

底下有cout<<x//打比方是x<<endl;

0
0
俞海婷
俞海婷
新手守护
新手守护

情况1:当前的是正数(正能量)a[i]>0;

s+a[i]>0; 传下去  s=s+a[i];

情况2:当前的是负能量 a[i]<0,如果if(s+a[i]>0) 传递来的正能量

能够吸收负能量,总能量s还是正的,继续传s=s+a[i];如果if(s+a[i]<0)当前的

负能量太大,无法被吸收,直接把s清0(传递给下一个数一定是正的或者0)

for(i=1;i<=n;i++)//处理每一个能量 
{ 
   if(s+a[i]>ans)//先判断ans-当前的和>ans  
   ans=s+a[i]; //ans赋值 
   if(s+a[i]>0) //传递过来的s+自己还是正能量 
   s=s+a[i];//继续正能量传下去 
   else s=0;//负能量过大,直接清0
   /*if(s>ans)***错误因为负的s=0,则有可能s>ans ans=0 
   ans=s;*/ 
} 

 

0
褚俊皓
褚俊皓
新手天翼
新手天翼

需要用while来循环

 

 

while(s<n)

 

{

 

i++;

 

s*=2;

 

}

底下有cout<<x//打比方是x<<endl;

0
时梓繁
时梓繁
修练者
修练者
  double s=0.1,n,i;
    cin>>n;
    while(s<n)
    {
        i++;
        s*=2;
    }
    cout<<i;
0
欧阳语聪
欧阳语聪
资深守护
资深守护
        while(a>=i){
        i*=2;
        b+=1;   
        }
0
0
王子翔
王子翔
新手光能
新手光能

前面还要定义,用double

我要回答