Professional Documents
Culture Documents
KĨ THUẬT LẬP TRÌNH CHIA SẺ KIẾN THỨC, KINH NGHIỆM GIẢI THUẬT – LẬP TRÌNH
Pascal Giải Thuật & Lập Trình Hợp Ngữ Tài Liệu Phần Mềm Tổng Quan Hỏi Đáp
Chuyên mục
Tìm kiếm
http://kithuatlaptrinh.tk/giai-thuat-va-lap-trinh/quy-hoach-dong/bai-toan-chia-phan-thuong 10/17/2011
Bài toán chia phần thưởng | KĨ THUẬT LẬP TRÌNH Page 2 of 9
điều kiện: Tất cả phần thưởng đều phải được thưởng hết cho học sinh). Làm thế nào để học tốt CNTT ở tr
Bài viết mới học? (71)
Vậy với mọi i, C[i,0]=0.
Giáo trình Cấu trúc dữ liệu và giải thu
Những lỗi thường • Có 0 phần thưởng mà chia cho j học sinh thì có 1 cách chia (không ai có phần
(60)
gặp khi mới bắt đầu thưởng cả). Vậy với mọi j, C[0,j]=1.
Chạy Turbo Pascal trên Windows 64 bit
lập trình C++
• Nếu số phần thưởng (i) ít hơn số học sinh (j) thì những học sinh thứ i+1 đến (53)
5 Cách để học lập
j sẽ không có phần thưởng, do đó số cách chia i phần thưởng cho j người sẽ Ebook Sáng tạo trong thuật toán và l
trình nhanh hơn – 5
bằng số cách chia i phần thưởng cho i người . Vậy với mọi i<j, C[i,j]=C[i,i]. trình (45)
Ways you can
Learning • Nếu số phần thưởng (i) nhiều hơn hoặc bằng số học sinh (j) thì có 2 Phong cách lập trình C++ (43)
Programming Faster trường hợp: Những lỗi thường gặp khi mới bắt
Cấu trúc file bitmap, + TH1: người cuối cùng không có phần thưởng, tức là chỉ chia i phần thưởng cho trình C++ (40)
đọc và xử lý file j-1 người, trường hợp này số cách chia là C[ i ][ j-1 ].
bitmap
+ TH2: người cuối cùng chắc chắn có phần thưởng, khi đó ta sẽ lấy j phần
Bài toán mã đi tuần
thưởng chia cho j người, mỗi người sẽ có được 1 phần thưởng trước, lúc này còn
Giáo trình Kỹ thuật
lại i-j phần thưởng, tiếp tục lấy số còn lại này chia cho j người, trường hợp này số
lập trình 2 – Khoa
CNTT – ĐH KTCN
cách chia là C[i-j][j].
Như vậy với mọi i>=j, C[ i ] [ j ] = C[ i ][ j-1 ] + C[ i-j ][ j ].
http://kithuatlaptrinh.tk/giai-thuat-va-lap-trinh/quy-hoach-dong/bai-toan-chia-phan-thuong 10/17/2011
Bài toán chia phần thưởng | KĨ THUẬT LẬP TRÌNH Page 3 of 9
Tìm kiếm file và Cài đặt bằng ngôn ngữ Pascal: Nhà tài trợ
folder bằng ngôn PROGRAM chia_phan_thuong;
ngữ Pascal
VAR C:ARRAY[0..70,0..70] OF LONGINT;
Phong cách lập trình
m,n,i,j:INTEGER;
– Đặng Bình Phương
– ĐHKHTN
BEGIN
Bài toán bảy cây cầu write('So phan thuong: '); readln(m);
Euler write('So hoc sinh: '); readln(n);
Ma phương – ma FOR i:=1 TO m DO C[i,0]:=0;
trận kì ảo FOR j:=1 TO n DO C[0,j]:=1;
Giáo trình lập trình FOR i:=1 TO m DO
Pascal nâng cao
FOR j:=1 TO n DO
IF i<j THEN
C[i,j]:=C[i,i]
ELSE
C[i,j]:=C[i,j-1] + C[i-j,j];
writeln('So cach chia: ',C[m,n]);
readln
END.
Cài đặt bằng ngôn ngữ C++
#include <iostream>
using namespace std;
int m,n;
int C[71][71];
int main()
{
cin>>m>>n;
int i,j;
for (i=1; i<=m; i++) C[i][0]=0;
http://kithuatlaptrinh.tk/giai-thuat-va-lap-trinh/quy-hoach-dong/bai-toan-chia-phan-thuong 10/17/2011
Bài toán chia phần thưởng | KĨ THUẬT LẬP TRÌNH Page 4 of 9
http://kithuatlaptrinh.tk/giai-thuat-va-lap-trinh/quy-hoach-dong/bai-toan-chia-phan-thuong 10/17/2011
Bài toán chia phần thưởng | KĨ THUẬT LẬP TRÌNH Page 5 of 9
END
ELSE
FOR k:=P[j-1] DOWNTO 0 DO {So phan thuong cua nguoi sau
phai nho hon hoac bang cua nguoi truoc}
IF i-k>=0 THEN {So phan thuong con lai phai khong am}
BEGIN
P[j]:=k;
Chia(i-k,j+1); {Chia so phan thuong con lai cho
nhung nguoi sau.}
END;
END;
BEGIN
readln(m,n);
r:=0;
P[0]:=m;
Chia(m,1);
writeln('Co ',r,' cach chia!');
readln;
END.
Cài đặt bằng ngôn ngữ C++
#include <iostream>
using namespace std;
int m,n,r;
int P[71];
http://kithuatlaptrinh.tk/giai-thuat-va-lap-trinh/quy-hoach-dong/bai-toan-chia-phan-thuong 10/17/2011
Bài toán chia phần thưởng | KĨ THUẬT LẬP TRÌNH Page 6 of 9
{
if (m==0)
{
r++;
for (int i=1; i<=::n; i++) cout<<P[i]<<" ";
cout<<endl;
}
}
else
for (int i=P[n-1]; i>=0; i--)
if (m-i>=0)
{
P[n]=i;
Chia(m-i,n+1);
}
}
int main()
{
cin>>m>>n;
r=0;
P[0]=m;
Chia(m,1);
cout<<"Co "<<r<<" cach chia!"<<endl;
return 0;
}
http://kithuatlaptrinh.tk/giai-thuat-va-lap-trinh/quy-hoach-dong/bai-toan-chia-phan-thuong 10/17/2011
Bài toán chia phần thưởng | KĨ THUẬT LẬP TRÌNH Page 7 of 9
Trang web
http://kithuatlaptrinh.tk/giai-thuat-va-lap-trinh/quy-hoach-dong/bai-toan-chia-phan-thuong 10/17/2011
Bài toán chia phần thưởng | KĨ THUẬT LẬP TRÌNH Page 8 of 9
Xác nhận
*
Visual HTML
Đường dẫn:
© 2011 KĨ THUẬT LẬP TRÌNH Hosted by vData Suffusion theme by Sayontan Sinha
http://kithuatlaptrinh.tk/giai-thuat-va-lap-trinh/quy-hoach-dong/bai-toan-chia-phan-thuong 10/17/2011
Bài toán chia phần thưởng | KĨ THUẬT LẬP TRÌNH Page 9 of 9
http://kithuatlaptrinh.tk/giai-thuat-va-lap-trinh/quy-hoach-dong/bai-toan-chia-phan-thuong 10/17/2011