1. 程式人生 > >找零錢的算法實現(Java)

找零錢的算法實現(Java)

pre spa hang 算法 sys change [] int eal

簡單的算法

基本思路就是將面值從大到小統計(外循環), 若當前金額大於某面值, 則當前金額減掉該面值, 並將面值對應張數+1, 繼續往下判斷(內循環)

 1 public void Change(int money)
 2     {
 3         //面值
 4         int[] value= {100,50,20,10,5,1};
 5         //對應找零張數
 6         int[] count=new int[value.length];
 7         for(int i=0;i<value.length;i++)
 8         {
9 while(money>=value[i]) 10 { 11 money-=value[i]; 12 count[i]++; 13 } 14 //輸出 15 if(count[i]!=0) 16 { 17 System.out.println(count[i]+"張"+value[i]+"元"); 18 } 19
} 20 }

原文鏈接:https://zhidao.baidu.com/question/391280227231381725.html

附我自己一開始寫的代碼, 看來還是要多加學習

 1 int hundred=0,fifty=0,twenty=0,ten=0,five=0,one=0;
 2 //realPayment實付款 payment應付款
 3 int change=realPayment-payament;
 4 if(change>0)
 5 {
 6     
 7     while(change!=0)
 8     {
 9         if
(change>=100) 10 { 11 hundred=change/100; 12 change%=100; 13 } 14 else if(change>=50) 15 { 16 fifty++; 17 change%=50; 18 } 19 else if(change>=20) 20 { 21 twenty++; 22 change%=20; 23 } 24 else if(change>=10) 25 { 26 ten++; 27 change%=10; 28 } 29 else if(change>=5) 30 { 31 five++; 32 change%=5; 33 } 34 else 35 { 36 one=change; 37 change=0; 38 } 39 } 40 41 }

找零錢的算法實現(Java)