谁能解释下这串代码中的for循环语句是怎么写出来的? 30

 我来答
515621078
2022-05-31 · TA获得超过167个赞
知道小有建树答主
回答量:271
采纳率:86%
帮助的人:81.8万
展开全部

首先看序列的特征,第一个是2/1,第二个是3/2,第三个是5/3。

规律是从第二个开始:

分子是前一个数的分子分母之和。

分母是前一个数的分子。

所以你分别需要几个变量来储存分子和分母(对应题中的a和b)

设其中分子初始值n为2,分母d为1,则下次循环时,想要得到3/2,就需要令n'=n+d(分子为3+1),但如果提前修改了分子的值,则无法取到n=2这个数值,所以需要中间变量t来暂存n的值。

则有t=n,此时t=2,n=2。再执行n=n+d,则有n=3。将d的值设定为t的值有d=t即可。

通过以上步骤则可以在循环中得到n=2, d=1和n=3, d=2的两种状况。

再通过一个变量储存每一次的运算结果,设变量sum默认为0,则计算时有sum += n/d。


此解法与题中解法原理相同:

其中分子n为b,分母d为a,暂存t为e:

在第一次计算时应有n'=n+d,和d'=n两个步骤。

所以实现方式是首先保存n的初始值为t,因n=t,则有:

n'=n+d 和 d'=n,

n'=t+d 和 d'=t。

可见d'=t与题中a+=e相同,

我们来推理一下:

对d'=t 有 t==n,而n==n`+d,故有d'=t+d。所以可以写作d+=t。(同a+=e)

分母解决了。

看分子,分子显然为n'=n+d,所以此时应为n+=d。

而原题中的b+=a按照上述则为n'=n+d'=n+n,显然不符合实际情况,正确写法是b+=d。


结论是,题干有错误,你跑一下就发现结果不对劲了。

对题干中d的值,为上一次计算的a(d=a),在题干中有"d=a",所以我们引入这个新的d,为变量u。按照上述的内容u=d对吧。因为原本的d已经变为d'了,不能用n=n+d,所以用n'=n+u就对了。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式