[ create a new paste ] login | about

Link: http://codepad.org/339T5xvx    [ raw code | output | fork | 4 comments ]

C, pasted on Sep 11:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<stdio.h>
#include<conio.h>
/*
Bài tập này thực chất là giải hệ pt:
x * 1000 + y * 2000 + z * 5000 = 200.000
200 * 1000 = 200000 => x thuộc [0, 200]
100 * 2000 = 200000 => y thuộc [0, 100]
40 * 5000 = 200000 => z thuộc [0, 40]
*/
int main()
{
	int i, j, k;
    for (i = 0; i <= 200; ++i)
        for (j = 0; j <= 100; ++j)
            for (k = 0; k <= 40; ++k)
                if (i * 1000 + j * 2000 + k * 5000 == 200000)
                    printf("\n%d to 1000(VND) -  %d to 2000(VND) - %d to 5000(VND) ", i, j, k);
   
	getch();
	return 0;
}


Output:
1
Line 17: error: conio.h: No such file or directory


Create a new paste based on this one


Comments:
posted by Letuan97 on Mar 19
Có chút giải thuật thì dễ hiểu hơn ý tưởng
reply
posted by khangmau on Jan 2
bài này 200 là có 40 lần số 5 ,rút gọn lại được 39 sô 5 và 4 cách là 1+1+1+1+1;1+2+2;1+1+1+1+1;5 đều bằng 5
cứ thế rút gọn suy kết quả bằng 4^39;

reply
posted by trung_nd on Aug 2
khangmau sai rồi, bạn chưa loại bỏ những kết quả trùng lặp, ví vụ [39 lần 5, 1 lần (2+2+1)] với [38 lần 5, 1 lần (2+2+1), 1 lần 5]. Mình cũng đang suy nghĩ cách giải bài này bằng tổ hợp theo hướng giống bạn nhưng chưa tìm đc cách giải.
reply
posted by trung_nd on Aug 2
giải theo hướng tổ hợp có vẻ bất khả thi vì trường hợp trùng lặp quá nhiều, ví dụ 2x[2+1+1+1] sẽ có số lần xuất hiện của 2 và 1 bằng với [2+2+1]+[1+1+1+1+1].
reply