美文网首页
计算一个数有多少种相加的结果集

计算一个数有多少种相加的结果集

作者: liust15 | 来源:发表于2019-04-11 16:59 被阅读0次

回溯算法

输入 一个数n
数组结果集

例如:
输入一个值为

6

结果为

6
5 1
4 2
4 1 1
3 3
3 2 1
3 1 1 1
2 2 2
2 2 1 1
2 1 1 1 1
1 1 1 1 1 1

本题使用全排列的方式计算结果

    @Test
    public void teset() {
        List<String> strings = generateTogether(6);
        strings.forEach(System.out::println);
    }

    public List<String> generateTogether(int n) {
        List<String> res = new ArrayList<>();
        generate(res, "", n, n);
        return res;
    }

    //max 表示后面的i的最大值,i对应的后面为相加的值
    private void generate(List<String> res, String ans, int max, int i) {
        if (i == 0){
            res.add(ans);
            return;
        }
        for (int j = i; j > 0; j--) {
            if (max >= j) {
                generate(res, ans +" "+ j,j,i-j);
            }
        }
    }

本题扩展
计算有多少种结果

例如 上题中 6 的结果又11

1 结果为1
2的结果为2
3的结果为3

本题采用动态规划的方法
思路

0 1 2 …… n
1 1 1 1 …… 1
2 1 1 2 …… dp[n]+=dp[n-2]
…… …… …… …… …… ……
n dp[0] dp[1] dp[2] …… dp[n]+dp[0]
   private long printResult(int n) {
        int dp[] = new int[n + 1];
        Arrays.fill(dp, 1);
        for (int i = 2; i <= n; i++) {
            for (int j = i; j <= n; j++) {
                dp[j] += dp[j - i];
            }
        }
       return dp[n];
    }

相关文章

  • 计算一个数有多少种相加的结果集

    回溯算法 输入 一个数n数组结果集 例如:输入一个值为 6 结果为 65 14 24 1 13 33 2 13 1...

  • Operators功能介绍

    Operators(运算) 1. () + (),计算两个数字相加的结果 执行下面的脚本,小猫会说“7” 2. (...

  • 开课感想

    今天数学学了从不同方向看图形,还学了三个数相加,有两种计算方法,一种是脱式计算,一种是竖式计算。上课我没有...

  • GEE数据集的表达式运算

    利用表达式计算一个数据集的增强结果 主要功能 对数据集的所有数据执行多项式计算获得计算结果进行展示 代码 步骤分析...

  • 能被 11 整除的数

    这样的数奇偶位到底什么关系? 这个数的特殊之处在于,1 乘以其它数结果就是那个数。计算时乘以十再与其相加,考虑到奇...

  • 平均值

    平均值:n个数相加,除以他们的个数,结果即为平均值 极差:粗略的表示方差。极差= 最大值-最小值削峰填谷算法计算平均值

  • 75、文件和异常课后习题

    10-6,7计算器 编写一个程序,提示用户输入两个数字,再将它们相加并打印结果。 但经常遇到一个问题,用户有可能输...

  • 编程题(3)

    输入任意一个数,将这个数分解成两个质数相加的形式,并输出有多少个方法 结尾用end表示结束 输出结果:

  • IL指令字典

    Add 将两个值相加并将结果推送到计算堆栈上。Add.Ovf 将两个整数相加,执行溢出检查,并且将结果推送到计算堆...

  • Sas应用之统计多个数据集重复数据量

    现有多个数据集,表结构都是一样的,现在需要找出这些数据集有多少数据量是重复的。假设有4个数据集,找出这4个数据集的...

网友评论

      本文标题:计算一个数有多少种相加的结果集

      本文链接:https://www.haomeiwen.com/subject/teitwqtx.html