Biểu Diễn N Thành Tổng Các Số Fibonaci

Tháng Chín 20, 2017

Biểu diễn N thành tổng các số Fibonaci

Cho số tự nhiên N và dãy số Fibonaci: 1, 1, 2, 3, 5, 8, …. Bạn hãy viết chương trình kiểm tra xem N có thể biểu diễn thành tổng của của các số Fibonaci khác nhau hay không? Fabonaci.INP 16 Fabonaci.OUT 13 3

Ý tưởng: Ta sẽ tìm số Fibonacci gần với số N nhất. Đây sẽ chính là số hạng đầu tiên nằm trong dãy kết quả. Sau đó, lấy hiệu của số N và số Fibonacci gần với số N nhất, tiếp tục tìm số Fib gần với hiệu trên và cứ thế cho đến khi hiệu đó là một số Fib. Kết quả các số Fibonacci sẽ được liệt kê theo thứ tự từ lớn đến nhỏ.

Uses crt; Var Fi, Fo: text;    n: integer; Procedure Laydulieu; Begin    Assign(Fi, 'D:\Fibonacy.INP');    Reset(Fi);    read(Fi, n);    Close(Fi); end; Procedure Xuli; Var Fibonacy, vitri: array[1..100] of integer;    t, i, d, j: integer;    ok: boolean; Begin    Assign(Fo, 'D:\Fibobacy.out');    Rewrite(Fo);    Fibonacy[1]:= 1;    Fibonacy[2]:= 1;    t:= 1;    d:= 2;    ok:= true;    While t < n do       begin          inc(d);          Fibonacy[d]:= Fibonacy[d-1]+ Fibonacy[d-2];          t:= Fibonacy[d];       end;    t:= n;    j:= 0;    For i:= d downto 1 do       begin          If Fibonacy[i] <= t then             begin                inc(j);                Vitri[j]:= i;                t:= t - Fibonacy[i];             end;       end;       If t <> 0 then ok:= false;       If Ok = true then             for i:= 1 to j do                                 begin                                 If i <> j then                                 write(Fo, Fibonacy[vitri[i]], ' + ') else                                 write(Fo, Fibonacy[vitri[i]])                                 end                                 else write(Fo, 'Khong the bieu dien ');       Close(Fo); end; Begin    Laydulieu;    Xuli; end.

Cach khac

program fibonacy; uses crt; var fi,fo:text;     n,x,y,z:word; procedure doc; begin     readln(fi,n); end; procedure xuli; begin     repeat     x:=1; y:=0;           repeat           z:=x+y;           x:=y;           y:=z;           until (z>n);     write(fo,x,' ');     n:=n-x;     until n=0; end; begin     clrscr;     assign(fi,'d:\ly\lyly\kt.inp');     reset(fi);     assign(fo,'d:\ly\lyly\kt.out');     rewrite(fo);     doc;     xuli;     readln; end.

Chia sẻ:

  • Twitter
  • Facebook
Thích Đang tải… Bài Tập Pascal Cơ Bản

Posted by:

123webshop

Previous Post Next Post

Bình luận về bài viết này Hủy trả lời

Δ

About Me

An English diarist and naval administrator. I served as administrator of the Royal Navy and Member of Parliament. I had no maritime experience, but I rose to be the Chief Secretary to the Admiralty under both King Charles II and King James II through patronage, diligence, and my talent for administration.

  • Tumblr
  • Share Icon
  • Instagram

Bài viết mới

  • Learn ChatGPT | Free Courses On ChatGPT
  • Machine Learning | Learn Machine Learning Easily
  • Đề thi chuyên Tin PTNK Tp Hồ Chí Minh các năm
  • Tải miễn phí bộ tài liệu mà bất kỳ học sinh, sinh viên nào yêu thích CNTT
  • Viết chương trình giải phương trình bậc 2 (ax2+ bx + c =0)

Bản tin

Nhập email của bạn…

subscribe

Trang này sử dụng cookie. Tìm hiểu cách kiểm soát ở trong: Chính Sách Cookie
  • Bình luận
  • Đăng lại
  • Theo dõi Đã theo dõi
    • The More You Share, The More You Get!
    • Theo dõi ngay
    • Đã có tài khoản WordPress.com? Đăng nhập.
    • The More You Share, The More You Get!
    • Sửa trang web
    • Theo dõi Đã theo dõi
    • Đăng ký
    • Đăng nhập
    • URL rút gọn
    • Báo cáo nội dung
    • Xem toàn bộ bài viết
    • Quản lý theo dõi
    • Ẩn menu
%d Tạo trang giống vầy với WordPress.comHãy bắt đầu

Từ khóa » Tổng Các Số Fibonacci Pascal