package com.google.android;
import java.util.Arrays;
import java.util.Stack;
public class SumEqualN {
static Stack<Integer> stack = new Stack<Integer>();
public static void main(String[] args) {
int n = 6, sum = 8;
int[] data = new int[n];
Arrays.fill(data, 0);
find(n, sum);
}
/**
* 从1-n的数列中找到和为sum的一个或者几个数
* @param n
* @param sum
*/
private static void find(int n, int sum) {
if (n <= 0 || sum <= 0) {
return;
}
//选择n
stack.push(n);
if (n == sum) {
for (int i : stack) {
System.out.print(i + "\t");
}
System.out.println();
}
find(n - 1, sum - n);
//不选择n
stack.pop();
find(n - 1, sum);
}
}
从数列1,2,3.......n 中随意取几个数,使其和等于sum
最新推荐文章于 2019-02-15 11:10:11 发布