题1:给定数列1, 1, 1, 3, 5, 9, 17, …,从第4 项开始,每项都是前3 项的和。求
第20190324 项的最后4 位数字。
python:
i1=1
i2=1
i3=1
for i in range(4,20190325):
i4=(i1+i2+i3)%10000
i1=i2
i2=i3
i3=i4 #只换成最后四位数的计算
print(i4)
出错:
- range(4,20190325)的范围是4至20190324,注意range的范围是前闭后开的,[4,20190325)
- 只求最后4 位数字,所以就可以换成只是最后四位数的计算,要不运算量太大。。。
C:
#include <stdio.h>
int main() {
int i1=1,i2=1,i3=1,i4=0;
for (int i=4;i<20190325;i++){
i4=(i1+i2+i3)%10000;
//注意不要多加变量!!!!
//仔细
i1=i2;
i2=i3;
i3=i4;
}
printf("%d",i4);
return 0;
}
2:
填空。
由于沙之国长年干旱,法师小明准备施展自己的一个神秘法术来求雨。
这个法术需要用到他手中的49 张法术符,上面分别写着1 至49 这49 个数字。
法术一共持续7 周,每天小明都要使用一张法术符,法术符不能重复使用。
每周,小明施展法术产生的能量为这周7 张法术符上数字的中位数。
法术施展完7 周后,求雨将获得成功,降雨量为7 周能量的中位数。
由于干旱太久,小明希望这次求雨的降雨量尽可能大,请大最大值是多少?