S6,如果z>4,转S7,
否则转S2.
S7,打印n,z;
S8,程序终止。
朱二白上初中的时候,很喜欢一个作家,那个作家很叛逆,反对应试教育,他在一本书里曾经说过,“所谓专家,就是把一个很多人都明白的问题,讲到一个人都不动的状态。”
暑假的时候,朱二白在学习高中数学的时候,学到算法,他心里就是这样的想法。
埋怨归埋怨,还是要静下心来坐。
n每次加1,应该就是排顺序的数字,x的初始值是1,但真正计算的时候,第一个数值是x+2,也就是3,同理,y的初始值是2,第一个带入的是4。
z的话呢,就是把每次的x和y的新值加入上一次的和里面。
一直算到n+1,x所有值构成一个等差数列,x的值加起来应该是3+5+7+……+(2n-1)+(2n+1)=(3+2n+1)×n÷2。
y的所有取值构成一个等比数列,所有y的取值加起来应该是4+8+16+……+2^n+2^(n+1)
这两个式子加起来,合并同类项,化到最简形式为n(n+2)+4×(2^n-1),使这个式子大于4000,解不等式就好了。
朱二白最后解出来符合条件的n=10,z=4212.
但是按照填空题输出语句,答案里只写10,4212.
题倒是不难,朱二白做出来却还是和打一场仗似的,他感觉到冯春霞总往这里看,他心里忽然凝重起来,班主任这样,似乎有什么目的。
管他呢,继续做。
请写出欧几里辗转相除法,求两个正数a,b的最大公约数的步骤:
这算什么题?朱二白记得清楚,这在高二上学期的那本书里看到过这个例题,想要答的话,完全照搬书上的内容就好了。
这题实在出的没什么难度。
但是,朱二白现在并没有带着高二的数学课本,冯春霞知道这一点,朱二白这才明白,班主任是想试试自己的水平,自己预习的那些数学,究竟是虚张声势,还是十分认真地学过一遍。
只是那时候,朱二白已经有了过目不忘能力的加持,写出来并不在话下。
S1,输入两个正整数a,b;
S2,如果Mod(a,b)≠0,那么转S3,否则转S6;
S3,r←Mod(a,b);
S4,a←b;
S5,b←r,转S2;
S6,输出b。
朱二白是靠系统赋予的能力背下来的,但是朱二白并不是死背,而是理解贯通,这个过程当中用了好几遍赋值语句。
如果余数为0,说明a可以被b整除,那么b就是a和b的最大公约数,输出b即可。
如果除数不为0,则把前面的除数座位新的被除数,把余数r作为新的除数,继续运算,一直到除数为0停止。
此时的余数就是a,b的罪大公约数。
一气呵成,比刚才的题快上许多。
冯春霞趁着让大伙做练习题的时候,过来看着朱二白做的怎么样,朱二白把纸递了过去。
“对了!”
冯春霞点点头,还没等朱二白高兴起来,冯春霞又把那张纸递给朱二白,翻到反面。
朱二白一看,原来背面还有一道题,刚才他没看到,倒也不难,和辗转相除一起背下来的更相减损。
张飞看着埋头苦写的朱二白,心里好奇,就往前偷偷看了他写的是什么。
不看不要紧,张飞一看到朱二白写的东西,头一下变得老大——什么玩意儿,压根就看不懂。
冯春霞注意到张飞一脸懵逼的表情,假装“怒其不争”得打了他的头一下。