java – 采用整数并返回所有可能的加法格式的算法

我需要编写一个采用整数的算法并返回所有可能的加法格式

例如

如果我得到:6

它将返回以下字符串:

 0+6=6
 1+1+1+1+1+1=6
 1+1+1+1+2=6
 1+1+1+3=6
 1+1+4=6
 1+5=6
 2+1+1+1+1=6
 2+1+1+2=6
 2+1+3=6
 2+4=6
 3+1+1+1=6
 3+1+2=6
 3+3=6
 4+1+1=6
 4+2=6
 5+1=6
 6+0=6

这是我的尝试:

import java.util.*;
public class Test
{
    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        System.out.print("Enter an integer? ");
        int num = in.nextInt();
        System.out.println();
        calculate(num);
    }
    private static void calculate(int n)
    {
        int[] arInt = new int[n];
        for(int i = 0; i <= n; i++)
        {
            for(int j = 0; j <= n; j++)
            {
                arInt[j] = i;
            }
            // ...
        }
    }
}

解决方法:

我同意布拉德的观点.完成此操作的最佳方法可能是通过递归.事实上,昨晚我正在研究与此有关的事情.我使用递归回溯算法解决了我的问题.查看*页面:Backtracking

现在,我不保证没有更好,更简单的方法来解决这个问题.但是,通过递归回溯,您将找到所有解决方案.

有一点需要注意,那就是0.你可以将任意数量的零投入加法/减法,它将会出现相同的结果.

上一篇:sqlplus命令行登录oracle数据库的几种方法


下一篇:将北京路网OSM文件导入到PostgreSQL + PostGIS 中,并利用osm2pgrouting工具+osmosis工具构建路网Graph拓扑结构