• 火車站之自動售票機接受50元、10元、5元、1元的硬幣,試寫出一個程式,算出購買127元之車票時,所需投入幣數最少之組合及其數量。
import java.util.Scanner;public class P4_1_1 {	public static void main(String[] args) {
	Scanner scn = new Scanner(System.in);	System.out.println("請輸入要計算的金額:");	int amount = scn.nextInt();	int c50n, c10n, c5n, c1n, sum = amount;	c50n = c10n = c5n = c1n = 0;
	System.out.println("符合之組合有:\n");
	// 利用for迴圈,將所有組合列出來
	// 50元硬幣之最大可能數,amount除以50之商	for (int i = 0; i <= (amount / 50); i++) {
	// 10元硬幣之最大可能數,amount除以10之商	for (int j = 0; j <= (amount / 10); j++) {
	// 5元硬幣之最大可能數,amount除以50之商	for (int k = 0; k <= (amount / 5); k++) {
	// 1元硬幣之最大可能數,amount除以1之商	for (int l = 0; l <= (amount / 1); l++) {
	// 組合之值必須等於amount才是我們要找的組合	if ((50 * i + 10 * j + 5 * k + l) == amount) {
        // 印出符合之組合        System.out.printf("( %d , %d , %d , %d )=         %d\n", i, j, k, l, (i + j + k + l));
       // 將符合之組合裡總幣數最少之組合,各幣值個數記錄下來	if (sum >= (i + j + k + l)) {	sum = (i + j + k + l);	c50n = i;	c10n = j;	c5n = k;	c1n = l;        }            }                }                    }                         }		           }	System.out.println();			//印出幣數最少之組合	System.out.printf("最少硬幣組合為:\n( %d , %d , %d , %d )= %d\n", c50n, c10n, c5n, c1n, (c50n + c10n + c5n + c1n));	System.out.printf("50元硬幣%2d個\n10元硬幣%2d個\n 5元硬幣%2d個\n 1元硬幣%2d個\n總計%d元", c50n, c10n, c5n, c1n,(50 * c50n + 10 * c10n + 5 * c5n + c1n));		scn.close();	}}
  • 輸出結果:
請輸入要計算的金額:127符合之組合有:
( 0 , 0 , 0 , 127 )= 127( 0 , 0 , 1 , 122 )= 123( 0 , 0 , 2 , 117 )= 119( 0 , 0 , 3 , 112 )= 115( 0 , 0 , 4 , 107 )= 111( 0 , 0 , 5 , 102 )= 107( 0 , 0 , 6 , 97 )= 103( 0 , 0 , 7 , 92 )= 99( 0 , 0 , 8 , 87 )= 95( 0 , 0 , 9 , 82 )= 91( 0 , 0 , 10 , 77 )= 87( 0 , 0 , 11 , 72 )= 83( 0 , 0 , 12 , 67 )= 79( 0 , 0 , 13 , 62 )= 75( 0 , 0 , 14 , 57 )= 71( 0 , 0 , 15 , 52 )= 67( 0 , 0 , 16 , 47 )= 63( 0 , 0 , 17 , 42 )= 59( 0 , 0 , 18 , 37 )= 55( 0 , 0 , 19 , 32 )= 51( 0 , 0 , 20 , 27 )= 47( 0 , 0 , 21 , 22 )= 43( 0 , 0 , 22 , 17 )= 39( 0 , 0 , 23 , 12 )= 35( 0 , 0 , 24 , 7 )= 31( 0 , 0 , 25 , 2 )= 27( 0 , 1 , 0 , 117 )= 118( 0 , 1 , 1 , 112 )= 114( 0 , 1 , 2 , 107 )= 110( 0 , 1 , 3 , 102 )= 106( 0 , 1 , 4 , 97 )= 102( 0 , 1 , 5 , 92 )= 98( 0 , 1 , 6 , 87 )= 94( 0 , 1 , 7 , 82 )= 90( 0 , 1 , 8 , 77 )= 86( 0 , 1 , 9 , 72 )= 82( 0 , 1 , 10 , 67 )= 78( 0 , 1 , 11 , 62 )= 74( 0 , 1 , 12 , 57 )= 70( 0 , 1 , 13 , 52 )= 66( 0 , 1 , 14 , 47 )= 62( 0 , 1 , 15 , 42 )= 58( 0 , 1 , 16 , 37 )= 54( 0 , 1 , 17 , 32 )= 50( 0 , 1 , 18 , 27 )= 46( 0 , 1 , 19 , 22 )= 42( 0 , 1 , 20 , 17 )= 38( 0 , 1 , 21 , 12 )= 34( 0 , 1 , 22 , 7 )= 30( 0 , 1 , 23 , 2 )= 26( 0 , 2 , 0 , 107 )= 109( 0 , 2 , 1 , 102 )= 105( 0 , 2 , 2 , 97 )= 101( 0 , 2 , 3 , 92 )= 97( 0 , 2 , 4 , 87 )= 93( 0 , 2 , 5 , 82 )= 89( 0 , 2 , 6 , 77 )= 85( 0 , 2 , 7 , 72 )= 81( 0 , 2 , 8 , 67 )= 77( 0 , 2 , 9 , 62 )= 73( 0 , 2 , 10 , 57 )= 69( 0 , 2 , 11 , 52 )= 65( 0 , 2 , 12 , 47 )= 61( 0 , 2 , 13 , 42 )= 57( 0 , 2 , 14 , 37 )= 53( 0 , 2 , 15 , 32 )= 49( 0 , 2 , 16 , 27 )= 45( 0 , 2 , 17 , 22 )= 41( 0 , 2 , 18 , 17 )= 37( 0 , 2 , 19 , 12 )= 33( 0 , 2 , 20 , 7 )= 29( 0 , 2 , 21 , 2 )= 25( 0 , 3 , 0 , 97 )= 100( 0 , 3 , 1 , 92 )= 96( 0 , 3 , 2 , 87 )= 92( 0 , 3 , 3 , 82 )= 88( 0 , 3 , 4 , 77 )= 84( 0 , 3 , 5 , 72 )= 80( 0 , 3 , 6 , 67 )= 76( 0 , 3 , 7 , 62 )= 72( 0 , 3 , 8 , 57 )= 68( 0 , 3 , 9 , 52 )= 64( 0 , 3 , 10 , 47 )= 60( 0 , 3 , 11 , 42 )= 56( 0 , 3 , 12 , 37 )= 52( 0 , 3 , 13 , 32 )= 48( 0 , 3 , 14 , 27 )= 44( 0 , 3 , 15 , 22 )= 40( 0 , 3 , 16 , 17 )= 36( 0 , 3 , 17 , 12 )= 32( 0 , 3 , 18 , 7 )= 28( 0 , 3 , 19 , 2 )= 24( 0 , 4 , 0 , 87 )= 91( 0 , 4 , 1 , 82 )= 87( 0 , 4 , 2 , 77 )= 83( 0 , 4 , 3 , 72 )= 79( 0 , 4 , 4 , 67 )= 75( 0 , 4 , 5 , 62 )= 71( 0 , 4 , 6 , 57 )= 67( 0 , 4 , 7 , 52 )= 63( 0 , 4 , 8 , 47 )= 59( 0 , 4 , 9 , 42 )= 55( 0 , 4 , 10 , 37 )= 51( 0 , 4 , 11 , 32 )= 47( 0 , 4 , 12 , 27 )= 43( 0 , 4 , 13 , 22 )= 39( 0 , 4 , 14 , 17 )= 35( 0 , 4 , 15 , 12 )= 31( 0 , 4 , 16 , 7 )= 27( 0 , 4 , 17 , 2 )= 23( 0 , 5 , 0 , 77 )= 82( 0 , 5 , 1 , 72 )= 78( 0 , 5 , 2 , 67 )= 74( 0 , 5 , 3 , 62 )= 70( 0 , 5 , 4 , 57 )= 66( 0 , 5 , 5 , 52 )= 62( 0 , 5 , 6 , 47 )= 58( 0 , 5 , 7 , 42 )= 54( 0 , 5 , 8 , 37 )= 50( 0 , 5 , 9 , 32 )= 46( 0 , 5 , 10 , 27 )= 42( 0 , 5 , 11 , 22 )= 38( 0 , 5 , 12 , 17 )= 34( 0 , 5 , 13 , 12 )= 30( 0 , 5 , 14 , 7 )= 26( 0 , 5 , 15 , 2 )= 22( 0 , 6 , 0 , 67 )= 73( 0 , 6 , 1 , 62 )= 69( 0 , 6 , 2 , 57 )= 65( 0 , 6 , 3 , 52 )= 61( 0 , 6 , 4 , 47 )= 57( 0 , 6 , 5 , 42 )= 53( 0 , 6 , 6 , 37 )= 49( 0 , 6 , 7 , 32 )= 45( 0 , 6 , 8 , 27 )= 41( 0 , 6 , 9 , 22 )= 37( 0 , 6 , 10 , 17 )= 33( 0 , 6 , 11 , 12 )= 29( 0 , 6 , 12 , 7 )= 25( 0 , 6 , 13 , 2 )= 21( 0 , 7 , 0 , 57 )= 64( 0 , 7 , 1 , 52 )= 60( 0 , 7 , 2 , 47 )= 56( 0 , 7 , 3 , 42 )= 52( 0 , 7 , 4 , 37 )= 48( 0 , 7 , 5 , 32 )= 44( 0 , 7 , 6 , 27 )= 40( 0 , 7 , 7 , 22 )= 36( 0 , 7 , 8 , 17 )= 32( 0 , 7 , 9 , 12 )= 28( 0 , 7 , 10 , 7 )= 24( 0 , 7 , 11 , 2 )= 20( 0 , 8 , 0 , 47 )= 55( 0 , 8 , 1 , 42 )= 51( 0 , 8 , 2 , 37 )= 47( 0 , 8 , 3 , 32 )= 43( 0 , 8 , 4 , 27 )= 39( 0 , 8 , 5 , 22 )= 35( 0 , 8 , 6 , 17 )= 31( 0 , 8 , 7 , 12 )= 27( 0 , 8 , 8 , 7 )= 23( 0 , 8 , 9 , 2 )= 19( 0 , 9 , 0 , 37 )= 46( 0 , 9 , 1 , 32 )= 42( 0 , 9 , 2 , 27 )= 38( 0 , 9 , 3 , 22 )= 34( 0 , 9 , 4 , 17 )= 30( 0 , 9 , 5 , 12 )= 26( 0 , 9 , 6 , 7 )= 22( 0 , 9 , 7 , 2 )= 18( 0 , 10 , 0 , 27 )= 37( 0 , 10 , 1 , 22 )= 33( 0 , 10 , 2 , 17 )= 29( 0 , 10 , 3 , 12 )= 25( 0 , 10 , 4 , 7 )= 21( 0 , 10 , 5 , 2 )= 17( 0 , 11 , 0 , 17 )= 28( 0 , 11 , 1 , 12 )= 24( 0 , 11 , 2 , 7 )= 20( 0 , 11 , 3 , 2 )= 16( 0 , 12 , 0 , 7 )= 19( 0 , 12 , 1 , 2 )= 15( 1 , 0 , 0 , 77 )= 78( 1 , 0 , 1 , 72 )= 74( 1 , 0 , 2 , 67 )= 70( 1 , 0 , 3 , 62 )= 66( 1 , 0 , 4 , 57 )= 62( 1 , 0 , 5 , 52 )= 58( 1 , 0 , 6 , 47 )= 54( 1 , 0 , 7 , 42 )= 50( 1 , 0 , 8 , 37 )= 46( 1 , 0 , 9 , 32 )= 42( 1 , 0 , 10 , 27 )= 38( 1 , 0 , 11 , 22 )= 34( 1 , 0 , 12 , 17 )= 30( 1 , 0 , 13 , 12 )= 26( 1 , 0 , 14 , 7 )= 22( 1 , 0 , 15 , 2 )= 18( 1 , 1 , 0 , 67 )= 69( 1 , 1 , 1 , 62 )= 65( 1 , 1 , 2 , 57 )= 61( 1 , 1 , 3 , 52 )= 57( 1 , 1 , 4 , 47 )= 53( 1 , 1 , 5 , 42 )= 49( 1 , 1 , 6 , 37 )= 45( 1 , 1 , 7 , 32 )= 41( 1 , 1 , 8 , 27 )= 37( 1 , 1 , 9 , 22 )= 33( 1 , 1 , 10 , 17 )= 29( 1 , 1 , 11 , 12 )= 25( 1 , 1 , 12 , 7 )= 21( 1 , 1 , 13 , 2 )= 17( 1 , 2 , 0 , 57 )= 60( 1 , 2 , 1 , 52 )= 56( 1 , 2 , 2 , 47 )= 52( 1 , 2 , 3 , 42 )= 48( 1 , 2 , 4 , 37 )= 44( 1 , 2 , 5 , 32 )= 40( 1 , 2 , 6 , 27 )= 36( 1 , 2 , 7 , 22 )= 32( 1 , 2 , 8 , 17 )= 28( 1 , 2 , 9 , 12 )= 24( 1 , 2 , 10 , 7 )= 20( 1 , 2 , 11 , 2 )= 16( 1 , 3 , 0 , 47 )= 51( 1 , 3 , 1 , 42 )= 47( 1 , 3 , 2 , 37 )= 43( 1 , 3 , 3 , 32 )= 39( 1 , 3 , 4 , 27 )= 35( 1 , 3 , 5 , 22 )= 31( 1 , 3 , 6 , 17 )= 27( 1 , 3 , 7 , 12 )= 23( 1 , 3 , 8 , 7 )= 19( 1 , 3 , 9 , 2 )= 15( 1 , 4 , 0 , 37 )= 42( 1 , 4 , 1 , 32 )= 38( 1 , 4 , 2 , 27 )= 34( 1 , 4 , 3 , 22 )= 30( 1 , 4 , 4 , 17 )= 26( 1 , 4 , 5 , 12 )= 22( 1 , 4 , 6 , 7 )= 18( 1 , 4 , 7 , 2 )= 14( 1 , 5 , 0 , 27 )= 33( 1 , 5 , 1 , 22 )= 29( 1 , 5 , 2 , 17 )= 25( 1 , 5 , 3 , 12 )= 21( 1 , 5 , 4 , 7 )= 17( 1 , 5 , 5 , 2 )= 13( 1 , 6 , 0 , 17 )= 24( 1 , 6 , 1 , 12 )= 20( 1 , 6 , 2 , 7 )= 16( 1 , 6 , 3 , 2 )= 12( 1 , 7 , 0 , 7 )= 15( 1 , 7 , 1 , 2 )= 11( 2 , 0 , 0 , 27 )= 29( 2 , 0 , 1 , 22 )= 25( 2 , 0 , 2 , 17 )= 21( 2 , 0 , 3 , 12 )= 17( 2 , 0 , 4 , 7 )= 13( 2 , 0 , 5 , 2 )= 9( 2 , 1 , 0 , 17 )= 20( 2 , 1 , 1 , 12 )= 16( 2 , 1 , 2 , 7 )= 12( 2 , 1 , 3 , 2 )= 8( 2 , 2 , 0 , 7 )= 11( 2 , 2 , 1 , 2 )= 7
最少硬幣組合為:( 2 , 2 , 1 , 2 )= 750元硬幣 2個10元硬幣 2個 5元硬幣 1個 1元硬幣 2個總計127元
arrow
arrow

    ALVIN 發表在 痞客邦 留言(0) 人氣()