Tính số fibonacy thứ n. Yêu cầu xử lí số lớn.

Tính số fibonacy thứ n. Yêu cầu xử lí số lớn.

0 bình luận về “Tính số fibonacy thứ n. Yêu cầu xử lí số lớn.”

  1. uses crt;
    var n,i,j,nho:longint; a:array[1..10000,1..10000]of longint;
    b:array[1..10000] of longint;
    begin
    clrscr;
       write(‘n=’);readln(n);
       a[1,1]:=1; b[1]:=1; b[2]:=1; a[2,1]:=1;
       for i:=3 to n do
          begin
             nho:=0;
             b[i]:=b[i-1];
             for j:=1 to b[i-1] do
                   begin
                      a[i,j]:=a[i-1,j]+a[i-2,j]+nho;
                      if a[i,j]>9 then begin a[i,j]:=a[i,j]mod 10; nho:=1; end else
                      nho:=0;
                   end;
             if nho=1 then begin inc(b[i]); a[i,b[i]]:=1; end;
          end;
       for j:=b[n] downto 1 do write(a[n,j]);
    readln
    end.

    ///////////////////////////////

    Mình dùng cách cộng 2 số lớn(sử dụng array) nên cho phép sử lý tới số 10000

    Text:

    Cái hình tràn số là kết quả của n=10000

    tinh-so-fibonacy-thu-n-yeu-cau-u-li-so-lon

    Bình luận

Viết một bình luận