hỏi về fibonacci



  • number= int(input("How many Fibonnaci numbers do you want?"))
    a=[1,1]
    def fibo():
    a.append (a[len(a)-1]+a[len(a)-2])
    return
    while len(a) < number:
    fibo()
    print (a)

    ai giải thích cho em chỗ a[len(a)-1] lại ra 2 với ạ



  • Dear bạn,

    Code của bạn chưa hoàn chỉnh và câu hỏi không rõ ràng( chưa rõ biến number).

    Code lại là:

    0_1480421609043_Capture.PNG

    List a có 2 phần tử a[0] = 1 và a[1] = 1

    Nếu bạn nhập number = 1 thì a[len(a)-1] = a[2-1] = a[1] = 1 ( List a vốn đã được khởi tạo với 2 phần tử)

    Nếu bạn nhập number = 2 thì a[len(a)-1] = a[2-1] = a[1] = 1

    Tuy nhiên nếu bạn nhập number = 3 thì a[len(a)-1] = a[3-1] = a[2]

    Mà a[2] được tính là a[0] + a[1] = 1 + 1 = 2

    Tương tự khi

    • number = 4, a[len(a)-1] = 3
    • number = 5, a[len(a)-1] = 5
    • number = 6, a[len(a)-1] = 8


  • em cảm ơn nhiều ạ



  • @Núi-Nhỏ đã nói trong hỏi về fibonacci:

    Dear bạn,

    Code của bạn chưa hoàn chỉnh và câu hỏi không rõ ràng( chưa rõ biến number).

    Code lại là:

    0_1480421609043_Capture.PNG

    List a có 2 phần tử a[0] = 1 và a[1] = 1

    Nếu bạn nhập number = 1 thì a[len(a)-1] = a[2-1] = a[1] = 1 ( List a vốn đã được khởi tạo với 2 phần tử)

    Nếu bạn nhập number = 2 thì a[len(a)-1] = a[2-1] = a[1] = 1

    Tuy nhiên nếu bạn nhập number = 3 thì a[len(a)-1] = a[3-1] = a[2]

    Mà a[2] được tính là a[0] + a[1] = 1 + 1 = 2

    Tương tự khi

    • number = 4, a[len(a)-1] = 3
    • number = 5, a[len(a)-1] = 5
    • number = 6, a[len(a)-1] = 8

    A. Núi Nhỏ cho e hỏi : Câu lệnh return trong đoạn Code trên có nhiệm vụ gì vậy.
    Vì e thử bỏ nó đi thì thấy kết quả không có gì khác cả.



  • Ai có thể giải thích cho câu hỏi của e vs được không ạ



  • @yeulaptrinh1995 Đúng là bỏ return đi thì cũng không ảnh hướng gì tới kết quả, tuy nhiên đã là hàm thì nên return một cái gì đó ( ở đây là a , bạn có thể return gì cũng được).


Log in to reply
 

Looks like your connection to Cộng đồng Python Việt Nam was lost, please wait while we try to reconnect.