Pta游戏题
#包含?& ltstdio.h & gt
int?主()
{?
双倍?s=0,a=2,b = 1;?
int?t,I,n;?
scanf?(" %d ",& ampn);?
为了什么?(I = 1;我& lt= n;i++)?
{?
s = s+a/b;?//把项目加起来?
t = a;?
a = a+b;?//把上一项的分子和分母之和作为下一项的分子?
b = t;?//用上一项的分子做下一项的分母?
}?
printf?(" %.2lf\n ",s);?
回归?0;
刚才试着把t改成double后,发现当n=3000时,A和B溢出。
对程序进行以下更改:
#包含?& ltstdio.h & gt
int?主()
{?
双倍?s = 0;
int?n?=?0;
scanf?(" %d ",& ampn);
双倍?tmp?=?2?/?1;
什么时候?(n -)
{
s?+=?tmp
tmp?=?1?/?tmp?+?1;
}
printf("%.2lf\n ",s);
回归?0;
}试试~