我在编写一个读取数字的程序的代码时遇到问题,然后使用最少量的账单打印出$ value的数量。这就是我能想到的。
import java.util.Scanner;
import java.lang.Math;
public class Assignment3 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter amount) ");
double amount = input.nextDouble();
int amountInt = (int) (amount * 100);
if(amount >= 100)
{
amount = amount % 100;
}
if(amount >= 50)
{
amount = amount % 50;
}
if(amount >= 20)
amount= amount % 50;
}
if(amount >= 10)
amount= amount %10;
}
if(amount >= 5)
amount= amount %5;
}
if(amount >= 1)
amount = amount %1;
}
if(amount >= .25)
amount =amount %.25;
}
if(amount >= .10)
amount = amount %.10;
}
if(amount >= .05)
amount = amount % .05;
}
if(amount >= .01)
amount = amount % .01;
}
答案 0 :(得分:0)
这可以这样做:
int tmp;
if(amount >= 100)
{
tmp = (int) amount/100
print tmp + "$100 bills"
amount = amount % 100
}
if(amount >= 50)
{
tmp = (int) amount/50
print tmp + "$50 bills"
amount = amount % 50
}
我可以在你的命名中看到这是一项任务,所以你必须自己修复语法。你还需要为较低的账单继续这样做。
这是一个解释 如果金额等于或超过一百,我们将它除以一百,并将其投入一个int。这将自动产生一百个上升到我们的数字的次数。因此对于455,(int)455/100将是4.我们打印,我们更新我们的金额。金额%100,从金额中减去100,尽可能多次(在这种情况下,4次)。
我们继续这样做,打印美元钞票并更新我们的金额。
编辑: 根据要求澄清什么是什么以及如何运作:
首先我们检查金额是否超过100,因为100是最大的美元账单。如果是的话我们这样做:
tmp = (int) amount/100
这是我们可以从金额中减去100的次数,我们保存这个值。如果amount
为640,tmp
现在为6。
然后我们打印出美元钞票,首先打印金额(tmp
),然后打印美元钞票类型。
之后我们更新amount
amount % 100
尽可能多地从amount
中减去100
如果我们继续使用640的示例,它将执行:
640-100=540
540-100=440
440-100=340
340-100=240
240-100=140
140-100= 40
因此,amount
将只留下40个。
我们继续此流程,剩余金额用于所有剩余的美元账单大小。