Money改变的Java程序

时间:2013-11-15 20:53:07

标签: java

我想要一个用于货币兑换的java程序,

示例:如果我输入Rs.98,那么我需要如下所示的结果,

1(Rs. 50) - Rs. 50
2(Rs. 20) - Rs. 40
1(Rs. 5) - Rs. 5
1(Rs. 2) - Rs. 2
1(Rs.1) - Rs. 1

我已经尝试过使用开关盒的逻辑和许多if和else,但我无法实现我想要的。请给出一些想法/逻辑来启动这个......

我尝试的程序是,

package in.javadomain;

import java.util.ArrayList;
import java.util.ListIterator;

public class PowerOfTwo {

    public static void main(String[] args) {
        int input = 98;
        int[] money = { 1, 2, 5, 10, 20, 50, 100, 500, 1000 };
        ArrayList<Integer> moneyChange = new ArrayList<Integer>();
        for (int i = 0; i<money.length; i++) {
            if (input > money[i]) {
                //input = money[i];
                moneyChange.add(money[i]);
                //System.out.println(input);
            }
        }
        ListIterator li = moneyChange.listIterator(moneyChange.size());
        int changes = 0;
        while(li.hasPrevious()){
            int temp = (int) li.previous();
            if(temp<input){
                // System.out.println(temp);
                changes = changes+temp;
                System.out.println(changes);
            }
        }
    }
}

,输出为,

50
70
80
85
87
88

但我想要下面的订单,

50
70
90
95
97
98

请尽量帮助我实现......

1 个答案:

答案 0 :(得分:2)

开始用最大的硬币分开,然后继续其余的。

98/50 = 1 - &gt;休息48

48/20 = 2 - &gt;休息8

8/5 = 1 - &gt;休息3

3/2 = 1 - &gt;休息1

1/1 = 1

完成