好吧,所以我需要做一個程序來問我一筆錢,然後我需要它告訴我最少的硬幣數量。我可以使用的硬幣有:美元,宿舍,硬幣,鎳幣和便士。例如,當我運行程序它應該是這樣的:分鐘在java中更改貪婪算法
> run Coins
Enter the amount of given money:
[1.73]
Give the seller 8 coins:
1 dollars,
2 quarters,
2 dime,
0 nickels,
3 pennies.
這是我有什麼至今:
import java.util.Scanner;
class Coins {
public static void main (String args[]) {
Scanner input = new Scanner(System.in);
double money;
System.out.println("Enter the amount of money ");
money = input.nextDouble();
while (money > 0.0){
if (money >= 1) {
System.out.println(money/1+"dollars");
money -= 1;
}
else if (money>=.25) {
System.out.println(money/.25+"quarters");
money-=.25;
}
else if (money>=.10) {
System.out.println(money/.10+"Dimes");
money-=.10;
}
else if (money>=.05) {
System.out.println(money/.05+"Nickels");
money-=.05;
}
else if (money>=.01) {
System.out.println(money/.01+"Penny");
money-=.01;
}
}
}
}
我需要幫助的部分是這樣的:如果我運行程序並輸入數量1.73,我寫代碼的方式是1.73,數字除以1,打印「1.73美元」。我需要一種方法來擺脫小數部分,而不是打印「1.73美元」,它打印「1美元」。但我不知道如何做到這一點。我試着把它轉換成一個int,但它弄亂了其他語句的流程。請幫幫我。
它不會工作(有一個錯誤) - 試試吧! – alfasin
@alfasin很抱歉讓你失望,但是我寫了完整的程序,它工作得很好......除了'Math.floor()'的一些鑄造問題和硬幣的數量(見更新的答案) – Veger
現在你編輯了你的答案 - 它會工作(刪除-1和更改爲+1),並且它的工作原理僅僅是因爲您通過添加'dollars *'和'quarters *'等方法修復了錯誤。 – alfasin