2013-11-15 66 views
-11

我要爲了錢更改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 

我曾嘗試邏輯與開關案件和許多如果和其他,但我不能達到我想要的。請給一些想法/邏輯來啓動這個..

,我被試程序,

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

開始與最大的硬幣分開,然後繼續其餘的。

五十〇分之九十八= 1 - >其餘48

48/20 = 2 - >休息8

8/5 = 1 - >休息3

3/2 = 1 - >休息1

1/l = 1

完成

+1

@Naveen你應該在發佈之前考慮你的問題... –

+0

這只是一個提示,因爲你說你不知道從哪裏開始 – Michael

+0

@Naveen你沒有指定120或565 ......你指定了98。 ..你甚至不配得到幫助的人。 –