Viết chương trình nhập vào số kg gạo. Giả sử ta có 1 số bao như sau: 20 kg, 10 kg, 5 kg, 2 kg, 1 kg.
Tìm tất cả các cách cho gạo vào bao tương ứng với số gạo đã có.
Ví dụ:
- Nhập số kg gạo: 8
- Cách 1:
+ Bao 1kg: 8
- Cách 2:
+ Bao 2kg: 1
+ Bao 1kg: 6
- Cách 3:
+ Bao 5kg: 1
+ Bao 1: 3
- Cách 4:
+ Bao 5: 1
+ Bao 2: 1
+ Bao 1: 1
- Cách 5:
+ Bao 2 kg: 4
- Cách 6:
+ Bao 5 kg: 1
+ Bao 1 kg: 3
- Cách 7:
+ Bao 2 kg: 2
+ Bao 1 kg: 4
Tìm tất cả các cách cho gạo vào bao tương ứng với số gạo đã có.
Ví dụ:
- Nhập số kg gạo: 8
- Cách 1:
+ Bao 1kg: 8
- Cách 2:
+ Bao 2kg: 1
+ Bao 1kg: 6
- Cách 3:
+ Bao 5kg: 1
+ Bao 1: 3
- Cách 4:
+ Bao 5: 1
+ Bao 2: 1
+ Bao 1: 1
- Cách 5:
+ Bao 2 kg: 4
- Cách 6:
+ Bao 5 kg: 1
+ Bao 1 kg: 3
- Cách 7:
+ Bao 2 kg: 2
+ Bao 1 kg: 4
Uses crt;
Trả lờiXóaVar n,k,i,j:longint;
t:array[1..5] of longint;
f:array[0..1000,0..1000] of longint;
Begin
readln(k);
t[1]:=1;
t[2]:=2;
t[3]:=5;
t[4]:=10;
t[5]:=20;
For i:=1 to 5 do
For j:=1 to k do
Begin
F[i,0]:=1;
F[0,j]:=0;
If j>=t[i] then
f[i,j]:=f[i-1,j]+f[i,j-t[i]] else f[i,j]:=f[i-1,j];
end;
Write(f[5,k]);
readln;
end.
Nhận xét này đã bị tác giả xóa.
Trả lờiXóa