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;

}试试~