等式变换
2015-06-12 15:23
253 查看
输入一个正整数X,在下面的等式左边的数字之间添加+号或者-号,使得等式成立。
1 2 3 4 5 6 7 8 9 = X
比如:
12-34+5-67+89 = 5
1+23+4-5+6-7-8-9 = 5
请编写程序,统计满足输入整数的所有整数个数。
输入: 正整数,等式右边的数字
输出: 使该等式成立的个数
样例输入:5
样例输出:21
输出
1 2 3 4 5 6 7 8 9 = X
比如:
12-34+5-67+89 = 5
1+23+4-5+6-7-8-9 = 5
请编写程序,统计满足输入整数的所有整数个数。
输入: 正整数,等式右边的数字
输出: 使该等式成立的个数
样例输入:5
样例输出:21
public static void main(String[] args) { char[] operas=new char[9]; new Main().dfs(0, 1, ' ', 0, operas, 5); } public void dfs(int result,int layer,char lastOperation,int lastNumber,char[] operas,int target) { //本次需要加上的数 lastNumber*=10; lastNumber+=layer; if(layer==9) { result+=('-'==lastOperation?(-1*lastNumber):lastNumber); if(result==target) { StringBuilder stringBuilder=new StringBuilder(); for(int i=1;i<9;i++) { stringBuilder.append(i); if(operas[i]!=' ') stringBuilder.append(operas[i]); } stringBuilder.append(9); System.out.println(stringBuilder.toString()); } return; } operas[layer]=' '; //本次不做加减运算 dfs(result, layer+1, lastOperation, lastNumber, operas,target); result+=('-'==lastOperation?(-1*lastNumber):lastNumber); //plus operas[layer]='+'; dfs(result, layer+1, '+', 0, operas,target); //minus operas[layer]='-'; dfs(result, layer+1, '-', 0, operas,target); }
输出
12-34+5-67+89 1+23+4-5+6-7-8-9 1+2+34-56+7+8+9 1+2+3+4-5+6-7-8+9 1+2+3+4-5-6+7+8-9 1+2+3-4+5+6-7+8-9 1+2-3+4+5+6+7-8-9 1+2-3-45+67-8-9 1+2-3-4+5-6-7+8+9 1+2-3-4-5+6+7-8+9 1-23+45+6-7-8-9 1-23+4+5-6+7+8+9 1-23-4-56+78+9 1-2+3+4-5-6-7+8+9 1-2+3-4+5-6+7-8+9 1-2+3-4-5+6+7+8-9 1-2-34-56+7+89 1-2-3+4+5+6-7-8+9 1-2-3+4+5-6+7+8-9 1-2-3-4-56+78-9 1-2-3-4-5-6+7+8+9
相关文章推荐
- 安装apk时出现错误Failure [INSTALL_FAILED_DEXOPT]问题解决的方法
- linux命令4--cksum命令
- 京东商品数据抓取
- 怎样写参数个数可变的宏?
- SQLServer 2005 和自增长主键identity说再见——NEWSEQUENTIALID()
- Python循环定时服务功能(类似contrab)
- 基于Zookeeper的分步式队列系统集成案例
- linux 管道通信
- linux ls 显示彩色目录
- Swift1_闭包
- Vim按键总结
- iOS开发UI篇 -- 0407UIApplication、UIWindow以及程序启动过程
- 设置火狐关闭最后一个标签页时关闭窗口
- MyEclipse使用指南介绍
- nc VO 例子
- iOS 图标、图形尺寸?
- Magento 根据SKU查询订单信息的SQL语句
- JVM内存监控:VisualVM远程监控JVM
- iOS UICollectionView的使用(用代码创建UI)
- WindowsXP笔记本断网后一直都连接不上要等很长时间