首页 文章

如何将一笔钱兑换成纸币和硬币

提问于
浏览
-1

如何将一定数量的钱换成纸币和硬币?让我们说输入是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硬币..

1 回答

  • 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; 将起作用 . 您可以阅读"casting",但基本上我只是告诉Java将该数字视为int,而不是double

    • 将输入保持为int,并将其向下舍入 . 然后只检查它是否有小数值( input % 1 > 0 ),如果有,则需要半美元 .

相关问题