当前位置: 首页 > 面试题库 >

获取所有可能的总和为给定数字的总和

隆向晨
2023-03-14
问题内容

我正在为Android开发一个数学应用程序。在这些字段之一中,用户可以输入一个整数(无数字且大于0)。这个想法是获得所有可能的和,使之成为整数,而不加倍(在这种情况下为4
+ 1 == 1 + 4)。唯一已知的是此int。

例如:

假设用户输入4,我希望该应用返回:

  • 4
  • 3 + 1
  • 2 + 2
  • 2 + 1 + 1
  • 1 + 1 + 1 + 1

显然4 == 4,所以也应该加上。关于我应该如何做的任何建议?


问题答案:

这是一个简单的算法,旨在做到这一点

来自:http
:
//introcs.cs.princeton.edu/java/23recursion/Partition.java.html

public class Partition {

    public static void partition(int n) {
        partition(n, n, "");
    }
    public static void partition(int n, int max, String prefix) {
        if (n == 0) {
            StdOut.println(prefix);
            return;
        }

        for (int i = Math.min(max, n); i >= 1; i--) {
            partition(n-i, i, prefix + " " + i);
        }
    }


    public static void main(String[] args) {
        int N = Integer.parseInt(args[0]);
        partition(N);
    }

}


 类似资料:
  • 我想写一个R脚本,它将生成一个集合数的所有可能组合,其乘积总和低于某个总数。 例如,我有这两个向量,

  • 我不知道搜索或谷歌它,所以我在这里问它。我有一个具有固定大小的整数数组,并且完全符合此逻辑。 现在我得到了一个数字,例如26。我将找到其总和将构成此数字的数字,在本例中为[2,8,16] 对于20个数字,它将是[4,16] 对于40它是[8,32] 对于63,它是所有这些数字[1,2,4,8,16,32] 正确的算法是什么? 我严格地知道,总有这样一种延续,即数字是前一个值的两倍。以及只有给定数组

  • 根据这个帖子,我们可以通过下面的代码得到一个数的所有约数。 例如,数字的除数是。 在搜索了一些相关的帖子后,我没有找到任何好的解决方案。有什么有效的方法来实现这一点吗? 我的解决方案: 通过这个解求出给定数的所有素因子 得到这些基本因子的所有可能组合 然而,这似乎不是一个好办法。

  • 问题内容: 我正在使用SQLite,并尝试返回该列中某一列的总数,同时返回所有数据。我不想/不需要对数据进行分组,因为我需要在每个返回的行中都包含数据。 当我包含类似内容时, 它仅返回一行。我需要所有返回的行以及所有条目的总数。 问题答案: 听起来这就是您要寻找的内容: 参见带有演示的SQL Fiddle

  • 本文向大家介绍tensorflow 获取模型所有参数总和数量的方法,包括了tensorflow 获取模型所有参数总和数量的方法的使用技巧和注意事项,需要的朋友参考一下 实例如下所示: 以上这篇tensorflow 获取模型所有参数总和数量的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 问题内容: 我正在尝试生成所有可能的长度N总计为S的列表。我已经编写了一些代码来这样做,但是在任何大的东西上(特别是我希望N = 5,S = 100),我都遇到了内存溢出错误。 我正在寻找一个更好的解决方案,或者一种方法来改进我的代码,以便可以在N = 5,S = 100上运行它。下面的这两个程序协同工作,以在嵌套列表中创建所有可能的数字组合,然后将它们重新加工为正确的格式。以下是一些示例输出。