|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 且停停停停 于 2021-1-5 21:21 编辑
7-1 输出前 n 个Fibonacci数 (10分)
本题要求编写程序,输出菲波那契(Fibonacci)数列的前N项,每行输出5个,题目保证输出结果在长整型范围内。Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列,例如:1,1,2,3,5,8,13,...。
输入格式:
输入在一行中给出一个整数N(1≤N≤46)。
输出格式:
输出前N个Fibonacci数,每个数占11位,每行输出5个。如果最后一行输出的个数不到5个,也需要换行。
如果N小于1,则输出"Invalid."
输入样例1:
7
输出样例1:
1 1 2 3 5
8 13
输入样例2:
0
输出样例2:
Invalid.
- N=int(input())
- if N < 1:
- print("Invalid.")
- elif N==1:
- print("%+11d"%1)
- elif N==2:
- print(" 1 1")
- else:
- count=0
- a,b=1
- lst=[1,1]
- while count < N :
- c=a+b
- lst.append(c)
- a=b
- b=c
- count+=1
- if len(lst)==5:
- print("%+11d"%i for i in lst,end="\n")
- lst=[]
复制代码
print("%+11d"%i for i in lst,end="\n")这里报错
感觉我这个思路不太好但素不知道怎么改
- def fib(n):
- if n > 2 : return fib(n - 1) + fib(n - 2)
- else : return 1
- n = int(input())
- if n > 1 :
- for i in range(1 , n + 1):
- if i > 1:
- if (i - 1) % 5 == 0:
- print()
- else :
- print(' ' , end = '')
- print('%11d' % fib(i) , end = '')
- print()
- else:
- print('invalid !')
复制代码
运行实况
- D:\0002.Exercise\Python>python x.py
- 38
- 1 1 2 3 5
- 8 13 21 34 55
- 89 144 233 377 610
- 987 1597 2584 4181 6765
- 10946 17711 28657 46368 75025
- 121393 196418 317811 514229 832040
- 1346269 2178309 3524578 5702887 9227465
- 14930352 24157817 39088169
- D:\0002.Exercise\Python>
复制代码
|
|