Bài tập: Quy đổi mệnh giá tiền

Dear Anh Chị,
Hôm nay em xin nhờ anh chị giúp em 1 bài tập mà em không thể làm 1 cách hoàn hảo được.

Đề bài:

Em làm trên DevC:

#include <stdio.h>
int main(){
int so;
printf("..........");
scanf(%d",&so);


          return 0;
}
int main(){
int so;
printf("…");
scanf(%d",&so);

** return 0;**
}

Đây là bài bạn đã làm đó ư, thiệt sao?
Bạn đang hỏi ý tưởng hay là nhờ ai đó code giải hộ ?

Viết tiêu đề cũng có tâm gớm, không thêm dấu luôn mà.

Bạn có làm được gì đâu mà hoàn hảo.

Mình chưa rõ cái “quả” quy đổi này nó thực hiện kiểu gì?

500 => 2x200 + 1x100

Sao không phải là:

500 => 1x500
500 => 5x100
...

Quy đổi sang mệnh giá thấp hơn và gần nhất???

3 Likes

ý tôi là bài làm của tôi sẽ xoay quay những câu lệnh kia chứ kp là bài làm kia. Ông hiểu chứ?

ý tôi là tôi làm bằng những câu lệnh như thế kia chứ kp là bài làm kia.

đây là vd thôi bạn. Đổi theo cách nào cũng được miễn là đổi thì ok.

Mình chỉ làm được tiền chẵn thôi còn lẻ ra 1 chút thì lại k làm được.

tạo cái list tất cả mệnh giá tiền xong rồi loop hết cho đến khi đổi hết tiền, mình thử bằng python

def change_money(money):
 	cashes = [500000, 200000, 100000, 50000, 20000, 10000, 5000, 2000, 1000]
 	result = {}
 	for cash in cashes:
 		if money>=cash:
 			result[cash] = money // cash
 			money = money % cash
 	return result
2 Likes

Bạn Thử Nhập 1 số lẻ nào chưa. Mình Nghĩ Như Thế Kia Chỉ Được Số Chẵn Thôi.

đây là bài 1 bài Qui hoạch đông co bản. Tham khảo.
https://vnoi.info/wiki/algo/dp/basic-problems#4-vali-a_4-4-một-số-bài-toán-khác_Đổi-tiền

2 Likes

Mình không hiểu lắm. Nếu mệnh giá tiền nhỏ nhất là 1k thì bạn sẽ không có ví dụ như 12500 được. Mà nếu có thì sau khi loop hết cái list bạn sẽ còn dư 1 ít tiền lo đổi được.

Vậy chuyển hết về 1k. :smiling_imp:

Done. :slight_smile:

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?