砝码组合
来源:互联网 发布:救世主大教堂知乎 编辑:程序博客网 时间:2024/06/03 16:26
题目内容:
用天平称重时,我们希望用尽可能少的砝码组合称出尽可能多的重量。如果只有5个砝码,重量分别是1,3,9,27,81。则它们可以组合称出1到121之间任意整数重量(砝码允许放在左右两个盘中)。本题目要求编程实现:对用户输入的重量(1~121),给出砝码组合方案(用加减式表示,减代表砝码放在物品盘)。例如:输入:5输出:9-3-1输入:19输出:27-9+1要求程序输出的组合总是大数在前小数在后。
输入描述
用户输入的重量(1~121),
输出描述
给出砝码组合方案(用加减式表示,减代表砝码放在物品盘)。
输入样例
19
输出样例
27-9+1
程序代码
/*遍历每一种情况*/ #include <stdio.h> int main(){ int a[]={-1,0,1}; int b[]={-3,0,3}; int c[]={-9,0,9}; int d[]={-27,0,27}; int e[]={-81,0,81}; int q,w,z,r,t; int n; int flag=0; scanf("%d",&n); for(q=0;q<3;q++) for(w=0;w<3;w++) for(z=0;z<3;z++) for(r=0;r<3;r++) for(t=0;t<3;t++) if(a[q]+b[w]+c[z]+d[r]+e[t]==n){ if(e[t]!=0){ if(e[t]>0 && flag!=0) printf("+"); printf("%d",e[t]); flag=1; } if(d[r]!=0){ if(d[r]>0 && flag!=0) printf("+"); printf("%d",d[r]); flag=1; } if(c[z]!=0){ if(c[z]>0 && flag!=0) printf("+"); printf("%d",c[z]); flag=1; } if(b[w]!=0){ if(b[w]>0 && flag!=0) printf("+"); printf("%d",b[w]); flag=1; } if(a[q]!=0){ if(a[q]>0 && flag!=0) printf("+"); printf("%d",a[q]); } } return 0; }
阅读全文
0 0
- 砝码组合
- 组合-砝码问题
- 砝码组合(回溯法)
- 18.砝码组合 (15分)
- 蓝桥杯中的砝码组合问题
- 砝码组合问题用c语言实现
- 砝码组合(三进制与深度搜索)
- 砝码
- 拆分,组合谜题 -【分割手链问题】【分割砝码问题】
- 砝码组合————解题报告
- 砝码称重 5个砝码 用天平称重时,我们希望用尽可能少的砝码组合称出尽可能多的重量。
- 动态规划:砝码的组合方案(2018届校招C/C++软件开发工程师)
- 有5个砝码 分别是1,3,9,27,81 可以组合成1--121之间任意整数
- 砝码称重
- 砝码称重
- 砝码称重
- 砝码问题
- 砝码问题
- 启动文件和2440启动方式相关知识
- shell死循环(while&&for)
- 动态规划背包算法(01背包和完全背包)
- popwindow+viewpager+fragment并且可以滑动的问题
- [Android]不同包引用R文件
- 砝码组合
- Python:入门到实现网络爬虫 Day1
- redis操作Template测试
- ICPC 青岛赛区 网络赛 1011 :A Cubic number and A Cubic Number<数学>
- Linux
- 读书笔记:valueOf
- linux之第一个shell脚本
- 正则表达式随笔
- 挑战题一(1)