Dãy số tự nhiên a1 , a2 ,a3... ak được gọi là hạnh phúc nếu nó thoả mãn các điều kiện sau :
- Dãy trên là một dãy giảm dần .
- Với mọi i ( 1<=i <= k ) ai hoặc là số nguyên tố , hoặc phải là ước của một trong các số a1 , a2 , ... , ai
VD : 18 17 13 11 9 7 6 5 3 2 là dãy hạnh phúc
Viết chương trình nhập 1 số tự nhiên N từ bàn phím và in ra màn hình một dãy số hạnh phúc càng dài càng tốt với số hạng đầu tiên là N.
Uses crt;
Const
max=37;
Var
a:array[1..max] of longint;
n,i:longint;
BEGIN
Clrscr;
a[1]:=1; a[2]:=1; a[3]:=2;
For i:=4 to max do
a[i]:=a[i-1]+a[i-2]+a[i-3];
Write('Nhap so n:'); readln(n);
i:=max;
While a[i]>n do i:=i-1;
Write(n,'=',a[i]);
n:=n-a[i];
While n>0 do
Begin
i:=i-1;
If n>=a[i] then
Begin
Write('+',a[i]);
n:=n-a[i];
End;
End;
Readln;
END.
Thứ Ba, 6 tháng 3, 2012
Đăng ký:
Đăng Nhận xét (Atom)
Popular Posts
-
Trong số các chương trình viết nhạc, Encore là chương trình có tính năng trình diễn rất tiện lợi, với 11 thanh công cụ trong Palette để soạn...
-
Như tiêu đề, qua tham khảo thông tin trên forum, thấy nhiều bạn than vãn về vấn đề chia ổ bằng acronis diskdirector mà chưa có lời giải đáp ...
-
Easy DriverPack liên tục ra phiên bản mới đến nay chúng ta đã có một sự cải tiến vượt bậc về giao diện và cải tiến về phương pháp nhận biết ...
-
Trong cuộc sống, có những hoạt động chỉ được thực hiện khi một điều kiện cụ thể được xảy ra. Điều kiện thường là một sự kiện được mô tả sau ...
-
Viết CT nhập từ bàn phím mảng 1 chiều và xóa 1 phần tử của mảng có n phần tử. var n,i,q,k,p:integer; a,b:array [1..1000] of integer; beg...
-
Bạn đang phân vân vì không thể chạy Turbo Pascal trên win 7? Bài viết sau sẽ tư vấn giúp bạn. Turbo Pascal 7.0 with DOSBox là những phần mềm...
-
Nhập dãy số gồm N số nguyên (N<100). Xác định xem đó có phải dãy số có tính chất là cấp số cộng hay không. uses crt; Var A:array[1..1...
-
Điều đầu tiên chúng ta quan tâm sẽ là cấu trúc của chương trình. Hầu như chương trình nào cũng đi theo quy tắc: [<phần khai báo>] <...
-
Nhập 1 chuỗi, sau đó bỏ khoảng trắng ở đầu và cuối, khoảng trắng ở giữa 2 từ. var s:string; begin readln(s); while s[1]=#32 do delete(s,1,1)...

0 nhận xét:
Đăng nhận xét