Viết chương trình pascal cho dãy số fibonaci

uses crt;

var a,b,i,d:longint;

(**************************************************)

function fibo(x:longint):boolean;

var b:array[1..1000] of longint;

      k:longint;

begin

b[1]:=1;b[2]:=1;k:=2;

repeat

    k:=k+1;

    b[k]:=b[k-1]+b[k-2];

until (b[k]>x) or (b[k]=x);

if b[k]=x then exit(true);

exit(false);

end;

(******************************************************)

begin

clrscr;

readln(a,b);

d:=0;

for i:=a to b do if fibo(i) then d:=d+1;

write(d);

readln

end.

Viết chương trình pascal cho dãy số fibonaci
In ra màn hình dãy số Fibonaci

Dãy số Fibonaci là dãy số mà F(1)=0, F(2)=1, F(n)=F(n-1)+F(n-2). Hãy viết chương trình in ra màn hình dãy số Fibonaci với n được nhập từ bàn phím.

PROGRAM Fibonacci;
Uses CRT;
VAR
   First, Second, Temp : Longint;
   ix,n : integer;
BEGIN
   Clrscr;
   Write('Nhap n = ');
   Readln(n);
   Writeln('Day so Fibonacci:');
   First := 0;
   Second := 1;
   write(First:10);
   write(Second:10);
   for ix := 0 to n do
   begin
      Temp := FIrst + Second;
      First := Second;
      Second := Temp;
      write(Temp:10);
   end;
   Readln;
END.
Viết chương trình pascal cho dãy số fibonaci
In ra màn hình dãy số Fibonaci

3.6 17 votes

Đánh giá bài viết

Vẽ thuật toán và viết chương trình tính và in ra số Fibonaci F(n) với n nhập từ bàn phím. Biết F(n) = F(n-1) + F(n-2), cho trước F(1) = 1; F(2) = 1;
Gợi ý: Viết hàm số tính Fib(n) trả về giá trị số Fibonaci thứ n. 

Xem chi tiết

Bài 1: Viết chương trình nhập vào 1 dãy số nguyên xuất dãy số đó ra màn hình tính tích các số chẵn và xuất ra màn hình.

Bài 2: Viết chương trình nhập 1 dãy số nguyên, xuất dãy số đó ra màn hình tính tổng các số chẵn các số lẻ và xuất ra màn hình.

Xem chi tiết
Dãy số Fibonaci

10:48 Đô Rê Mon ĐZ


In ra màn hình dãy số Fibonaci với n số nhập từ bàn phím. Biết dãy số Fibonaci là dãy số mà F(1)=0, F(2)=1, F(n)=F(n-1)+F(n-2).

uses crt;
var i,n,f1,f2: integer;
begin
 clrscr;
 write('Nhap n: ');
 readln(n);
 f1:=0;
 f2:=1;
 for i:=1 to n do
 begin
  write(f1,' ');
  f2:=f2+f1;
  f1:=f2-f1;
 end;
 readln;
end.

Related Posts : Bài tập Pascal,Câu lệnh lặp,Pascal cơ bản,Vòng lặp for

Viết chương trình pascal cho dãy số fibonaci
Nhãn: Bài tập Pascal, Câu lệnh lặp, Pascal cơ bản, Vòng lặp for
Viết chương trình pascal cho dãy số fibonaci


Bài 1(Cách 1): Viết chương trình nhập từ bàn phím một số n. Xuất dãy số Fibonacci trong khoảng n.

Biết dãy số Fibo được xác dịnh như sau :

U0 = U1 = 1

Un+2 = Un+1 + Un (n > 0)

Ví dụ: n = 8 -> 1 1 2 3 5 8 13 21.

Program Day_Fibo;

uses crt;

var i,n,f1,f2,f3:longint;

procedure fibo(k:longint);

begin

 f1:=1;

 f2:=1;

 for i:=1 to k do

 begin

  f3:=f1+f2;

  write(f1:3,'  ');

  f1:=f2;

  f2:=f3;

 end;

end;

begin

 clrscr;

 write('Nhap n: ');readln(n);

 fibo(n);

 readln;

end.

Bài 1 (Cách 2): Nhập vào một số N. Xuất ra tất cả các số fibonanci trong khoảng N.

VD: N = 5    -> 1        1          2          3          5

Program Bai9;

uses crt;

var a,b,c,d,i,n:integer;

begin

clrscr;

  write('Nhap vao n = ');readln(n);

  a:=1;

  b:=1;

  c:=a+b;

  write(n,' so Fibonaci dau tien la: ');

  write(1:4,1:4);

  for i:=3 to n do

    begin

      write(c:4);

      a:=b;

      b:=c;

      c:=a+b;

    end;

  writeln;

  writeln('Da xu ly xong');

readln;

end.

  writeln('da xu ly xong');

 readln;

end.

Bài 2: Nhập vào một số N. Xuất ra số Fibonanci thứ N

VD: N = 10    -> Số Fibonanci thứ 10 là: 55

program xuat_so_fibonanci;

uses crt;

var i,n,s,a,b:integer;

begin

clrscr;

 write('nhap vao n:=');readln(n);

  b:=1;

  i:=2;

  a:=1;

   while (i

    begin

     i:=i+1;

      if i mod 2=1 then a:=a+b

      else b:=b+a;

    end;

     if i mod 2=1 then write('So Fibonanci thu ',n,' la: ',a)

     else writeln('So Fibonanci thu ',n,' la: ',b);

readln;

end.

Bài 3: Nhập vào một số phân tích thành tổng các số là số fibonanci.

VD: N = 10   -> 10 = 8 +2

program tfbnc;

var i,j,n:integer;

    f:array[1..1000] of longint;

function fib(k:integer):longint;

  begin

    f[1]:=1;

    f[2]:=1;

    f[3]:=2;

    if f[k]=-1 then f[k]:=fib(k-1)+fib(k-2);

    fib:=f[k];

  end;

begin

  write('nhap n: ');readln(n);

  write(n,'=');

  for i:=1 to 1000 do f[i]:=-1;

  while n>0 do

  begin

    i:=1;

    while fib(i)<=n do i:=i+1;

    j:=fib(i-1);

    if i<=n then write(j,' + ')

    else write (j);

    n:=n-j;

  end;

  writeln();

  writeln('da xu ly xong');

 readln;

end.

Bài 4: Nhập vào một số N. kiểm tra xem có mấy cách phân tích thành tổng các số fibonanci.

VD: N = 10   -> Có 3 cách phân tích.

program bai10;

var f:array[1..20] of integer;

    dd:array[1..20] of boolean;

    n,i,luu:integer;

procedure tim(i:integer);

var j:integer;

begin

  if n=0 then

  begin

    writeln(i-1);

    readln;

    halt;

  end

  else

  begin

    for j:=1 to luu do

     if (not dd[j]) and (n>=f[j]) then

     begin

       dd[j]:=true;

       n:=n-f[j];

       tim(i+1);

       dd[j]:=false;

       n:=n+f[j];

     end;

  end;

end;

{Chuong trinh chinh}

begin

  write('nhap vao n: ');readln(n);

  f[1]:=1;

  f[2]:=1;

  i:=2;

  while (f[i]

    begin

      i:=i+1;

      f[i]:=f[i-1]+f[i-2];

    end;

  luu:=i;

  tim(0);

end.