我需要编写一个采用整数并返回所有可能加法格式的算法
例如
如果我羡慕: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; } // ... } } }
我同意布拉德。完成此操作的最佳方法可能是通过递归。实际上,我昨晚正在从事与此相关的工作。我使用递归回溯算法解决了我的问题。查阅Wikipedia页面:回溯
现在,我无法保证没有更好,更简单的方法可以解决此问题。但是,通过递归回溯,您将找到所有解决方案。
需要注意的一件事是0。您可以将任意数量的零添加到加法/减法中,结果将相同。