• 火车站之自动售票机接受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元
相关文章