b.Mã chương trình:
-
var i,n: integer;
M: array[1..100] of longint;
f,g: text;
begin
assign(f,’bai5_7.inp’); reset(f);
assign(g,’bai5_7.out’); rewrite(g);
readln(f,n);
M[1]:=1;
M[2]:=1;
for i:=3 to n do M[i]:=M[i-1]+M[i-2];
for i:=1 to n do write(g,M[i],' ,');
close(f); close(g);
end.
|
Bài tập 5.8
Viết chương trình in ra màn hình tam giác Pascal. Ví dụ, với n=4 sẽ in ra hình sau:
1 1
1 2 1
1 3 3 1
1 4 6 4 1
... Hàng thứ n được xác định từ hàng n-1:
- Phần tử đầu tiên và phần tử cuối cùng đều bằng 1.
- Phần tử thứ 2 là tổng của phần tử thứ nhất và thứ 2 của hàng n-1
- Phần tử thứ k của hàng thứ n là tổng của phần tử thứ k-1 và k của hàng thứ n-1.
Thuật toán:
Bước 1: Khởi tạo một mảng một chiều n phần tử có giá trị 0.
Bước 2: Khởi tạo giá trị cho hàng thứ nhất M[1,1] = 1.
Bước 3: - Đối với hàng thứ i tính giá trị phần tử từ phần tử thứ i + 1 xuống phần tử thứ 2: M[j]:=M[j] + M[j-1]
- In ra hàng thứ i.
Chương trình:
-
Var n,i,j: integer;
M: array[1..100] of integer;
f,g: text;
Begin
Assign(f,’bai5_8.inp’); reset(f);
Assign(g,’bai5_8.out’); rewrite(g);
Readln(f,n);
For i:= 1 to n do M[i]:=0;
M[1]:=1;
For i:=1 to n do
Begin
For j:=i+ 1 downto 2 do M[j]:=M[j]+M[j-1];
For j:=1 to i+ 1 do Write(g,M[j]:3);
Writeln(g);
End;
Close(f); close(g);
End.
|
Chia sẻ với bạn bè của bạn: |