我想要一个用于货币兑换的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
请尽量帮助我实现......
答案 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
完成