我是新來的C++。問題在於最小化所需的硬幣數量以給出確切的更改,我有25 10 5和1美分硬幣。要換多少個硬幣
例如,如果一個客戶欠下3.20美元,硬幣的數量應該是14個(25箇中的12個和10箇中的2個)。
我的問題: 像4.20一些說,你需要22枚金幣,而不是18,我知道,當它乘以100變化所產生的問題,我得到的419,而不是420
這裏是我的代碼。
int coins = change * 100;
//How many 25 cent coins you need
if (coins >= 25)
{
quarter = coins/25;
coins = coins % 25;
}
//How many 10 cent coins you need
if (coins >= 10)
{
dimes = coins/10;
coins = coins % 10;
}
//How many 5 cent coins you need
if (coins >= 5)
{
nickels = coins/5;
coins = coins % 5;
}
//How many 1 cent coins you need
if (coins >= 1)
{
pennies = coins/1;
coins = coins % 1;
}
NumCoins = quarter + dimes + nickels + pennies;
printf("%d \n", NumCoins);
感謝您的幫助。
被四捨五入或(不需要的)整數除法問題困住了嗎? –
「變更」的類型是什麼?爲什麼你甚至在'C++'中使用'printf'? –
@πάνταῥεῖ聽起來像一個四捨五入的問題,我只是在C#中用float作爲變量變量,我得到了419. –