您的位置:首页 > 编程语言

实现用指定量的砝码来完成称重 竞赛题(递归法)

2012-04-14 22:37 288 查看
用天平称重时,我们希望用尽可能少的砝码组合称出尽可能多的重量。
如果只有5个砝码,重量分别是1,3,9,27,81。则它们可以组合称出1到121之间任意整数重量(砝码允许放在左右两个盘中)。
本题目要求编程实现:对用户给定的重量,给出砝码组合方案。
例如:
用户输入:
5
程序输出:
9-3-1
用户输入:
19
程序输出:
27-9+1
package IO;import java.util.Scanner;public class AutoCalculate{public static void main(String[] args){Scanner sc=new Scanner(System.in);System.out.print("请输入0-121之间的数字:");int n=sc.nextInt();if(n>=0&&n<=121){int[] a={0,-1,+1};int[] b={0,-3,+3};int[] c={0,-9,+9};int[] d={0,-27,+27};int[] e={0,-81,+81};for(int h=0;h<a.length;h++){for(int i=0;i<b.length;i++){for(int j=0;j<c.length;j++){for(int k=0;k<d.length;k++){for(int l=0;l<e.length;l++){if(a[h]+b[i]+c[j]+d[k]+e[l]==n){if(e[l]!=0){System.out.print(e[l]);}if(d[k]!=0){System.out.print(d[k]);}if(c[j]!=0){System.out.print(c[j]);}if(b[i]!=0){System.out.print(b[i]);}if(a[h]!=0){System.out.print(a[h]);}}}}}}}}else{System.out.println("输入不合法");}}}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  string class 编程 c
相关文章推荐