把一个数分解成任意几个数之和全部结果
package com.codser;import java.util.HashSet;public class App
{/*** 临时的构建内部类*/static class Construct{int left; // 拆的第一个数 eg:拆5 left=1,right=4int right; // 与拆的第一个数互补的数String complement; // 补充1的片段public Construct(int left,int right,String complement){this.left=left;this.right=right;this.complement=complement;}public int getLeft() {return left;}public void setLeft(int left) {this.left = left;}public int getRight() {return right;}public void setRight(int right) {this.right = right;}public String getComplement() {return complement;}public void setComplement(String complement) {this.complement = complement;}@Overridepublic String toString() {return "Construct{" +"left=" + left +", right=" + right +", complement='" + complement + '\'' +'}';}}public static void main( String[] args ){// 要拆的数int num=5;// 拆的临时数组Construct[][] tempConstruct=new Construct[num+1][];// 构建的结果HashSet<String>res=new HashSet<String>();// 将不用的置空tempConstruct[0]=null;tempConstruct[1]=null;// 按需构建二维数组并填充拆开的数据for(int i=2;i<=num;i++){tempConstruct[i]=new Construct[i-1];int index=0;for(int j=1;j<i;j++){StringBuilder str=new StringBuilder();for(int z=0;z<(num-i);z++){str.append("1+");}// 去掉末尾的加号并添加到构建对象中tempConstruct[i][index++]=new App.Construct(j,i-j,str.length()>0?str.toString().substring(0,str.length()-1):str.toString());}}// 构建结果for(int i=2;i<=num;i++){for(int j=0;j<tempConstruct[i].length;j++){Construct construct=tempConstruct[i][j];if(construct.getComplement().equals("")){res.add(construct.getLeft()+"+"+construct.getRight());res.add(construct.getRight()+"+"+construct.getLeft());}else{res.add(construct.getLeft()+"+"+construct.getRight()+"+"+construct.getComplement());res.add(construct.getComplement()+"+"+construct.getLeft()+"+"+construct.getRight());res.add(construct.getRight()+"+"+construct.getComplement()+"+"+construct.getLeft());}}}// 打印结果System.out.println(num+"所拆的个数:"+res.size());for (String string : res) {System.out.println(num+"="+string);}}}
把一个数分解成任意几个数之和全部结果相关推荐
- 把一个数分解成任意几个数之和,打印所有和式分解的结果
题目:把一个数分解成任意几个数之和,把一个数的所有和式分解的结果全部输出出来, 例如:4的结果有,(1+3),(2+2),(1+1+2),(1+1+1+1) 由例子可见,该程序是去重的,应为1+1+2 ...
- 把一个数分解成任意几个数的和,把所有的可能性列出来
把一个数分解成任意几个数的和,把所有的可能性列出来 4=1+3 4=2+2 4=1+1+2 4=1+1+1+1 类似于有4个苹果放入n个篮子 通过创建二维数组将数字分别放进去 分别考虑 当都为一的情况 ...
- 把一个数分解成任意几个数的和,把所有的可能性列出来。
在boss上面,一位大boss给我出的题目,自己没答出来,机会是留给有准备的人,看来不是给我准备着,虽然自己最近才刚刚学习了动态规划,但是能力还是差很多,下面进入正文. 这个问题我第一个想到的就是m个 ...
- 面试经典算法-将大于2的某一个数分解成两个素数之和
将大于2的某一个数分解成两个素数之和 [面试题]输入一个大于2的偶数n,将n分解成为两个素数之和,有几对就输出几对.(注意 :1 不是素数) #include <stdio.h>/*子算法 ...
- 借用该函数验证哥德巴赫猜想:任意一个大的偶数都可以分解成两个素数之和。
定义一个函数,实现判断某个整数是否是素数.借用该函数验证哥德巴赫猜想:任意一个大的偶数都可以分解成两个素数之和.从键盘输入一个偶数,输出该偶数的两个素数之和. 代码段: #include <io ...
- JS:利用函数,求任意三个数最大值,任意两个数的任意运算结果,判断任意数值是否为素数。
1.求任意三个数最大值 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...
- 华为机试——将一个数分解成两个质数之和
题目描述 * 题目描述:数字分解,将一个数字分解成两个质数相加 * 输入描述:给定数字 * 输出描述:两个质数之和 * 输入示例:10 * 输出示例:10=3+7 代码实现 /************ ...
- 简单算法:把一个数分解成几个数之和
小白记录,大佬勿喷!! /**分析2 1+1:3 1+2,1+1+14 1+3,2+2,1+1+2,1+1+1+15 1+4,2+3,1+1+3,1+2+2,1+1+1+2,1+1+1+1+16 1+ ...
- 著名的斐波拉契数列(Fibonacci),除第一个和第二个数外,任意一个数都可由前两个数相加得到: 1, 1, 2, 3, 5, 8, 13, 21, 34, ...
def fib(max):n, a, b = 0, 0, 1while n < max:print(b)a, b = b, a + bn = n + 1return 'done' 注意,赋值语句 ...
最新文章
- iOS高级面试之NSRunLoop须知
- RASA NLU Chi安装
- 常用的方法论-鱼骨图
- 如何理解计算机程序中的宏?
- easy connect电脑版_北师大版小学英语六年级上册Unit4课文听力+翻译+单词录音跟读+高清课本(一起点)...
- Illustrator 教程,如何在 Illustrator 中添加图像?
- 视频实现blob加密
- silverlight读取mysql_silverlight访问数据库
- vs为什么打了断点不断_2019年丹麦羽毛球公开赛焦点对阵:林丹VS塞帕拉内斯 石宇奇 VS 马克卡尔尤B...
- Q8四元数群的正规子群
- 王垠:怎样尊重一个程序员
- Caché 实操《Caché 算法与数据结构-数组原理》学习笔记
- 实例讲解基于 React+Redux 的前端开发流程
- MySQL数据库灵魂拷问
- html样式表三种类型包括,css样式有哪几种类型
- 解决重邮无法访问蓝鸽听力以及无法访问部分内网的解决方法
- 根据美光内存颗粒上的编码查询对应型号
- 小学计算机教师集体备课计实,教师集体备课心得体会精选5篇合集
- Vue进阶(幺零二):面试必备:2023 Vue经典面试题整理(含答案)
- 微信小程序学习 (一)