【问题标题】:How can I return a list of integers that add up to a provided integer n如何返回一个整数列表,这些整数加起来等于提供的整数 n
【发布时间】:2022-11-04 23:31:51
【问题描述】:

我有一个函数public static List<Integer> change(int n),它接受一个整数n,并返回整数5,2 和1 加起来等于n 的次数(它应该使用尽可能少的整数)。例如

如果n = 12,输出将是[5,5,2],因为5+5+2 = 12 如果n = 55,输出将是[5,5,5,5,5],因为5+5+5+5+5 = 25。 如果n = 3,则输出将是[2,1],因为 2+1 = 3。

我正在努力理解将其实现为代码背后的逻辑,所以这是我到目前为止所拥有的:

List<Integer> change(int n) {
    a = 5
    b = 2
    c = 1
    int[] j;
    if (a+b+c == n) {
         j.add(a)
         j.add(b)
         j.add(c) }
    }

有人可以解释解决此类问题的逻辑,以便我可以进行必要的更改吗?

谢谢你。

【问题讨论】:

  • 听起来你正在寻找背包问题.

标签: java loops math integer


【解决方案1】:

听起来您会从使用诸如欧几里得最大公分母算法之类的东西中受益。

这是一个链接供您阅读:

https://www.khanacademy.org/computing/computer-science/cryptography/modarithmetic/a/the-euclidean-algorithm#:~:text=The%20Euclidean%20Algorithm%20for%20finding,%3D%20B%E2%8B%85Q%20%2B%20R)

【讨论】:

    猜你喜欢
    • 2017-08-21
    • 1970-01-01
    • 1970-01-01
    • 2013-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多