球球dalao帮忙看看报错原因?
本帖最后由 且停停停停 于 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=
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")这里报错
感觉我这个思路不太好但素不知道怎么改{:10_245:} 本帖最后由 jackz007 于 2021-1-5 22:48 编辑
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(n + 1):
if i > 1 :
print('\t' , end = '')
print('%11d' % fib(i) , end = '')
print()
else:
print('invalid !') jackz007 发表于 2021-1-5 22:46
这个代码没有每行输出五个欸{:10_245:} 且停停停停 发表于 2021-1-6 13:15
这个代码没有每行输出五个欸
主要头疼的就是每行输出五个
还有我的代码倒数第二行报错原因{:10_269:} 且停停停停 发表于 2021-1-6 13:15
这个代码没有每行输出五个欸
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> jackz007 发表于 2021-1-6 14:00
运行实况
有点没看懂{:10_245:}你这里是怎么实现换行的a
if (i - 1) % 5 == 0:
print() 本帖最后由 jackz007 于 2021-1-6 14:30 编辑
且停停停停 发表于 2021-1-6 14:12
有点没看懂你这里是怎么实现换行的a
如果 i - 1 的值能被 5 整除,那就换行,就是说,i = 6、11、16、21、26、31 ...... 的时候就换行了。而这些数字,正好是新行的开始 jackz007 发表于 2021-1-6 14:29
如果 i - 1 的值能被 5 整除,那就换行,就是说,i = 6、11、16、21、26、31 ...... 的时候就 ...
为什么不用“\n"就可以实现a?{:10_329:} 且停停停停 发表于 2021-1-6 15:08
为什么不用“\n"就可以实现a?
print() 缺省动作就带换行,再写一个的话就会换 2 行了 jackz007 发表于 2021-1-6 15:20
print() 缺省动作就带换行,再写一个的话就会换 2 行了
明白了谢谢!!!
页:
[1]