本題要求撰寫程式,輸出菲波那契(Fibonacci)數列的前N項,每行輸出5個,題目保證輸出結果在長整型范圍內,Fibonacci數列就是滿足任一項數字是前兩項的和(最開始兩項均定義為1)的數列,例如:1,1,2,3,5,8,13,...,
輸入格式:
輸入在一行中給出一個整數N(1≤N≤46),
輸出格式:
輸出前N個Fibonacci數,每個數占11位,每行輸出5個,如果最后一行輸出的個數不到5個,也需要換行,
如果N小于1,則輸出"Invalid."
代碼如下:
#!/usr/bin/python # -*- coding: utf-8 -*- #定義Fibonacci方法 def Fibonacci(n): m = 0 if n == 1 or n == 2: m = 1 else: m = Fibonacci(n-1) +Fibonacci(n-2) return m n = int(input()) j = 1 if n <= 0 : print("Invalid.") else: for i in range(1,n+1): print("{:11d}".format(int(Fibonacci(i))),end="") if j%5 == 0 or j == n: print() j = j + 1
這是第一次測驗時寫的代碼,但是提交時最后一個超時,想不出來哪里有問題,CSDN幫忙解決,
原來是我定義的Fibonacci方法導致的,那個簡單,但是耗時較長,
https://blog.csdn.net/weixin_42229583/article/details/104627064
代碼如下:
def Fibonacci(n): fn1 = 1 fn2 = 1 fn3 = 1 while n>2: fn3 = fn1 + fn2 fn1 = fn2 fn2 = fn3 n -= 1 return fn3
這個是不超時的方法,
總體來說這個程式不難,
讀書和健身總有一個在路上
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/156494.html
標籤:Python
上一篇:python機器學習(1)
下一篇:Python基礎_檔案讀寫
