如何将一定数量的钱兑换成纸币和硬币?让我们说输入是1234,26 我们有1000,500,200,100,50和20,20,1和0.5的硬币的钞票?因此,如果输入大于.25且小于0.75,如果它在.75和1.00之间,它应该四舍五入为1x 1,如果它小于.25则应该四舍五入为零?¨ 对于这个确切的程序,所需的输出看起来像这样:
1x: 1000
1x: 200
1x: 20
1x: 10
4x: 1
1x: 0.5
如果它不是0.5硬币,我想我可以使用int和%来做到这一点,但是现在我几乎无能为力(想想我必须使用数组,但我不知道如何)并且不知道如何开始。我也是初学者,如果你能在回答和解释时牢记这一点!任何提示/解决方案?提前谢谢!
像这样?: System.out.println((input/1000) + " thousand " + ((input/500)%2) + " fivehundred " + (input/200%2.5) + " two hundred " + (input/100%2) + " hundred " + (input/50%2) + " fifty " + (input/20%2.5) + " twenty " + (input/10%2) + " ten " + input/1%10 + " one " );
仍然不确定如何处理0.5因为我必须使用int,只输入cuz如果我使用double我得到它完全错误,我还必须使用if语句为0.5硬币..
答案 0 :(得分:1)
我相信这是解决这类问题的标准方法。
double input = 1234.26;
int thousands = input/1000;
input = input - 1000*thousands; //So now it would 234,26
int fivehundreds = input/500;
input = input - 500*fivehundreds;
etc...
是的,但你不能从double转换为int(即千位是int,但输入是double,所以input / 1000是double)。所以你有几个选择:
(int)int thousands = input/1000;
将起作用。您可以阅读" cast",但基本上我只是告诉Java将该数字视为int,而不是双重input % 1 > 0
),如果有,则需要半美元。