python
异常处理编程
第六题
要求
已知某数列,a1=a2=a3=1,后面的每个数,是其前三个数之和,即a4=a1+a2+a3,a5=a2+a3+a4。编写程序,计算该数列中第一个大于1万的数是多少?是第几个数?
示例
代码
方法一
a1,a2,a3=1,1,1
a4 = 3
print(1,1,1,3,sep=',',end=',')
i = 4
while a4 <=10000:
a1,a2,a3 = a2,a3,a4
a4 = a1+a2+a3
print(a4,end=',')
i = i + 1
else:
print('\n该数列中第{}个数是第一个大于1万的数!'.format(i))
print('该数的值为:{}'.format(a4))
运行结果
方法二
a1=1
a2=1
a3=1
num = 3
n = 0
b = 0
print("{},{},{},".format(a1,a2,a3),end="")
while b<=10000:
num = num + 1
if num%3==1:
n = a1+a2+a3
a1=n
b = a1
elif num%3==2:
a2=a2+a3+n
b = a2
else :
a3=a3+a1+a2
b = a3
print("{},".format(b),end="")
print()
print("该数列中第{}个数是第一个大于1万的数!".format(num))
print("该数的值为:{}".format(b))