1package poise;
 2
 3/**
 4 * 用天平称重时,我们希望用尽可能少的砝码组合称出尽可能多的重量。
 5      如果只有5个砝码,重量分别是1,3,9,27,81。则它们可以组合称出1到121之间任意整数重量(砝码允许放在左右两个盘中)。
 6      本题目要求编程实现:对用户给定的重量,给出砝码组合方案。
 7      例如:
 8      用户输入:
 9      5
10      程序输出:
11      9-3-1
12      用户输入:
13      19
14      程序输出:
15      27-9+1
16      输入:
17      41
18      输出:
19      81-27-9-3-1
20      要求程序输出的组合总是大数在前小数在后。
21      可以假设用户的输入的数字符合范围1~121。
22**/

23
24public class Weight {
25
26    public static void main(String[]args) {
27        int input = 106;
28        int[] a , b , c , d , e;
29        a = b = c = d = e = new int[]{-1,0,1};
30        for (int ai : a){
31            for (int bi : b){
32                for (int ci : c){
33                    for (int di : d){
34                        for (int ei : e){
35                            if (input == ei*81 + di*27 + ci*9 + bi*3 + ai*1){
36                                System.out.println("("+ ei*81 + ")+(" + di*27 + ")+(" + ci*9 + ")+(" + bi*3 + ")+(" + ai*1 +")");
37                            }

38                        }

39                    }

40                }

41            }

42        }

43    }

44}