コードA
# include<stdio.h>
# include<math.h>
int main()
{
int h1,n,m,j,k;
double sum=0,h2=0;
scanf("%d %d",&h1,&n);
if(n>0) //注意一定要讨论n==0这种情况
{
sum=h1;
for(m=1;m<=n;m++)
{
sum+=h2*2;
h2=h1/pow(2,m); //这个地方调用函数了,运算速度慢
}
}
printf("%0.1lf %0.1lf",sum,h2);
return 0;
}
コード2
# include<stdio.h>
int main()
{
int h1,n,m;
double sum=0,h2=0,j=2;
scanf("%d %d",&h1,&n);
if(n>0)
{
sum=h1;
for(m=1;m<=n;m++)
{
sum+=h2*2;
h2=h1/j;
j*=2; //更快
}
}
printf("%0.1lf %0.1lf",sum,h2);
return 0;
}
Sを追加する前に、観察し、変数h、非常に定期的に、
私は推測してみましょう:何の議論のn == 0ではありません。