实现用指定量的砝码来完成称重 竞赛题(递归法)
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("输入不合法");}}}
相关文章推荐
- 一个app,多个入口图标,activity-alias实现多程序入口并显示指定view完成
- 【引文】vs2005编译程序不能实现,“未能完成操作 未指定的错误”的解决办法
- JS对外部文件的加载及对IFRMAME的加载的实现,当加载完成后,指定指向方法(方法回调)
- JS对外部文件的加载及对IFRMAME的加载的实现,当加载完成后,指定指向方法(方法回调)
- activity-alias实现多程序入口并显示指定view完成
- 一个app,多个入口图标,activity-alias实现多程序入口并显示指定view完成
- 一个app,多个入口图标,activity-alias实现多程序入口并显示指定view完成
- JavaScript实现当网页加载完成后执行指定函数的方法
- 一个app,多个入口图标,activity-alias实现多程序入口并显示指定view完成
- vs编译程序不能实现,“未能完成操作 未指定的错误”的解决办法
- 一个app,多个入口图标,activity-alias实现多程序入口并显示指定view完成
- 一个app,多个入口图标,activity-alias实现多程序入口并显示指定view完成
- JS对外部文件的加载及对IFRMAME的加载的实现,当加载完成后,指定指向方法(方法回调)
- 一个app,多个入口图标,activity-alias实现多程序入口并显示指定view完成
- Calendar实现得到指定月的第一天和最后一天
- SHAutoComplete自动完成的实现
- spark实现hive的合并输入很多小文件为指定大小的大文件的优化功能
- 用纯C#实现截取屏幕指定区域
- 砝码称重
- php实现远程网络文件下载到服务器指定目录(方法二)