Chắc suất Đại học top - Giữ chỗ ngay!! ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.
Mọi người giúp em bài này với ạ. Ngôn ngữ nào cũng được nha
#include<iostream>
using namespace std;
void doiTien(int &g, int &s, int &k) {
while (s >= 17 || k >= 29) {
if (s >= 17) {
s -= 17;
g++;
}
else if (k >= 29) {
k -= 29;
s++;
}
}
}
//Tiền còn lại gồm 6 tham số: g,s,k là các đồng tiền. p,q,r là giá tiền tương ứng với các g,s,k
void tienConLai(int& g, int& s, int& k, const int& p, const int& q, const int& r) {
g -= p;
if (s - q < 0) {
s = g * 17 + s - q; // Đổi tiền từ đồng g sang đồng s rồi trừ cho giá
}
else {
s -= q;
}
if (k - r < 0) {
k = s * 29 + k - r;// Đổi tiền từ đồng s sang đồng k rồi trừ cho giá
}
else {
k -= r;
}
}
int main() {
int g = 5; //Đồng Galeon
int s = 16;// Đồng Sikel
int k = 10;//Đồng Knat
tienConLai(g, s, k, 3, 9, 21);//Trừ tiền món 1
tienConLai(g, s, k, 0, 4, 0);// Trừ tiền món 2
doiTien(g, s, k);//Đổi lại tiền
if (g >= 0 && s >= 0 && k >= 0) {//Kiểm tra xem có cái nào âm không, nếu dương thì xuất tiền
cout << "Tien g: " << g << endl;
cout << "Tien s: " << s << endl;
cout << "Tien k: " << k << endl;
}
else {// Nếu âm thì xuất -1
cout << "-1";
}
return 0;
}
int main() {
int g = 5; //Đồng Galeon
int s = 16;// Đồng Sikel
int k = 10;//Đồng Knat
int p1 = 3, q1 = 9, r1 = 21;
int p2 = 0, q2 = 4, r2 = 0;
g -= p1;
if (s - q1 < 0) {
s = g * 17 + s - q1; // Đổi tiền từ đồng g sang đồng s rồi trừ cho giá
}
else {
s -= q1;
}
if (k - r1 < 0) {
k = s * 29 + k - r1;// Đổi tiền từ đồng s sang đồng k rồi trừ cho giá
}
else {
k -= r1;
}
g -= p2;
if (s - q2 < 0) {
s = g * 17 + s - q2; // Đổi tiền từ đồng g sang đồng s rồi trừ cho giá
}
else {
s -= q2;
}
if (k - r2 < 0) {
k = s * 29 + k - r2;// Đổi tiền từ đồng s sang đồng k rồi trừ cho giá
}
else {
k -= r2;
}
//Doi tien
while (s >= 17 || k >= 29) {
if (s >= 17) {
s -= 17;
g++;
}
else if (k >= 29) {
k -= 29;
s++;
}
}
if (g >= 0 && s >= 0 && k >= 0) {//Kiểm tra xem có cái nào âm không, nếu dương thì xuất tiền
cout << "Tien g: " << g << endl;
cout << "Tien s: " << s << endl;
cout << "Tien k: " << k << endl;
}
else {// Nếu âm thì xuất -1
cout << "-1";
}
return 0;
}
Bạn viết sai chỗ nào rồi chăng. Mình vẫn ra 2 2 18@Nguyễn Trần Phát
Bài này chưa hoàn thiện, mình chỉ mới viết hàm và test thử, bạn có thể sử dụng để áp dụng vào bài.
* Bài này hình như mình đọc đề không hiểu rõ hoặc đáp án của đề bị sai. Mình ra 2 9 18 mà đề là 2 2 18.
Bài này bạn cần lưu ý phần đổi tiền là là được.
Mã:#include<iostream> using namespace std; void doiTien(int &g, int &s, int &k) { while (s >= 17 || k >= 29) { if (s >= 17) { s -= 17; g++; } else if (k >= 29) { k -= 29; s++; } } } //Tiền còn lại gồm 6 tham số: g,s,k là các đồng tiền. p,q,r là giá tiền tương ứng với các g,s,k void tienConLai(int& g, int& s, int& k, const int& p, const int& q, const int& r) { g -= p; if (s - q < 0) { s = g * 17 + s - q; // Đổi tiền từ đồng g sang đồng s rồi trừ cho giá } else { s -= q; } if (k - r < 0) { k = s * 29 + k - r;// Đổi tiền từ đồng s sang đồng k rồi trừ cho giá } else { k -= r; } } int main() { int g = 5; //Đồng Galeon int s = 16;// Đồng Sikel int k = 10;//Đồng Knat tienConLai(g, s, k, 3, 9, 21);//Trừ tiền món 1 tienConLai(g, s, k, 0, 4, 0);// Trừ tiền món 2 doiTien(g, s, k);//Đổi lại tiền if (g >= 0 && s >= 0 && k >= 0) {//Kiểm tra xem có cái nào âm không, nếu dương thì xuất tiền cout << "Tien g: " << g << endl; cout << "Tien s: " << s << endl; cout << "Tien k: " << k << endl; } else {// Nếu âm thì xuất -1 cout << "-1"; } return 0; }
Nếu bạn chưa học hàm bạn có thể tham khảo đoạn code sau, hơi dài dòng
Mã:int main() { int g = 5; //Đồng Galeon int s = 16;// Đồng Sikel int k = 10;//Đồng Knat int p1 = 3, q1 = 9, r1 = 21; int p2 = 0, q2 = 4, r2 = 0; g -= p1; if (s - q1 < 0) { s = g * 17 + s - q1; // Đổi tiền từ đồng g sang đồng s rồi trừ cho giá } else { s -= q1; } if (k - r1 < 0) { k = s * 29 + k - r1;// Đổi tiền từ đồng s sang đồng k rồi trừ cho giá } else { k -= r1; } g -= p2; if (s - q2 < 0) { s = g * 17 + s - q2; // Đổi tiền từ đồng g sang đồng s rồi trừ cho giá } else { s -= q2; } if (k - r2 < 0) { k = s * 29 + k - r2;// Đổi tiền từ đồng s sang đồng k rồi trừ cho giá } else { k -= r2; } //Doi tien while (s >= 17 || k >= 29) { if (s >= 17) { s -= 17; g++; } else if (k >= 29) { k -= 29; s++; } } if (g >= 0 && s >= 0 && k >= 0) {//Kiểm tra xem có cái nào âm không, nếu dương thì xuất tiền cout << "Tien g: " << g << endl; cout << "Tien s: " << s << endl; cout << "Tien k: " << k << endl; } else {// Nếu âm thì xuất -1 cout << "-1"; } return 0; }
def moneyToKnat(galeon, sikel, knat):
return (galeon * 17 + sikel) * 29 + knat
def knatToMoney(knat):
return (knat // 29 // 17, knat // 29 % 17, knat % 29)
def rawToKnat(raw):
coins = list(map(int, raw.split()))
return moneyToKnat(coins[0], coins[1], coins[2])
if __name__ == '__main__':
with open('MONEY.INP', 'r') as file:
budget = rawToKnat(file.readline())
numOfItems = int(file.readline())
for _ in range(0, numOfItems):
cost = rawToKnat(file.readline())
budget = budget - cost
with open('MONEY.OUT', 'w') as file:
if budget >= 0:
file.write("{} {} {}".format(*knatToMoney(budget)))
else:
file.write("-1")
#include<iostream>
using namespace std;
void doiTien(int& g, int& s, int& k) {
while (s >= 17 || k >= 29) {
if (s >= 17) {
s -= 17;
g++;
}
else if (k >= 29) {
k -= 29;
s++;
}
}
}
//Tiền còn lại gồm 6 tham số: g,s,k là các đồng tiền. p,q,r là giá tiền tương ứng với các g,s,k
void tienConLai(int& g, int& s, int& k, const int& p, const int& q, const int& r) {
g -= p;
if (s - q < 0) {
s = g * 17 + s - q; // Đổi tiền từ đồng g sang đồng s rồi trừ cho giá
g = 0; //Cập nhật <= Vì đổi hết tiền sang s rồi, nên g phải = 0
}
else {
s -= q;
}
if (k - r < 0) {
k = s * 29 + k - r;// Đổi tiền từ đồng s sang đồng k rồi trừ cho giá
s = 0; // Cập nhật
}
else {
k -= r;
}
}
int main() {
int g = 5; //Đồng Galeon
int s = 16;// Đồng Sikel
int k = 10;//Đồng Knat
tienConLai(g, s, k, 3, 9, 21);//Trừ tiền món 1
tienConLai(g, s, k, 0, 4, 0);// Trừ tiền món 2
doiTien(g, s, k);//Đổi lại tiền
if (g >= 0 && s >= 0 && k >= 0) {//Kiểm tra xem có cái nào âm không, nếu dương thì xuất tiền
cout << "Tien g: " << g << endl;
cout << "Tien s: " << s << endl;
cout << "Tien k: " << k << endl;
}
else {// Nếu âm thì xuất -1
cout << "-1";
}
return 0;
}
PythonMọi người giúp em bài này với ạ. Ngôn ngữ nào cũng được nha
money = list(map(int, input().split()))
for i in range(int(input())):
price = list(map(int, input().split()))
money = list(map(lambda x, y: x - y, money, price))
knat = money[0] * 17 * 29 + money[1] * 29 + money[2]
print("{} {} {}".format(knat // 29 // 17, knat // 29 % 17, knat % 29) if knat >= 0 else -1)