eimhee 发表于 2013-2-7 15:23:19

100以内可以累加为100的整数组合

论坛地址:http://topic.csdn.net/u/20081017/00/880bd5d2-7762-4746-a66d-a1cdfdabd716.html

算法真的很有趣,感谢 jayflee.

<div class="highlighter">
[*]import java.util.LinkedList;
[*]<span />
[*]<span />/**
[*] * 100以内所有可以加为100的整数的组合。<br>
[*] * 此处以10为例子。<br>
[*] * 思路是,拿到第一个数,然后把后面的递归解析,<br>
[*] * 原则后面的数不能小于当前这个数<br>
[*] * 且不大于结果减去当前数.<br>
[*] * <br>
[*] * 比如 10,技术从0开始,则当前数为1,被递归解析数为9<br>
[*] * 递归的起点为1,保证1不会再被解析。
[*] * 
[*] * @author jayflee,老紫竹 java2000.net
[*] * 
[*] */<span />
[*]public class T {
[*]  public static void main(String[] args) {
[*]    split(10, 0);
[*]  }
[*]<span />
[*]  static LinkedList<Integer> list = new LinkedList<Integer>();
[*]<span />
[*]  public static void split(int n, int base) {
[*]    if (n == 0) {
[*]      System.out.println(list);
[*]      return;
[*]    }
[*]    for (int i = base + 1; i <= n; i++) {
[*]      list.addLast(i);
[*]      split(n - i, i);
[*]      list.removeLast();
[*]    }
[*]  }
[*]<span />
[*]}
页: [1]
查看完整版本: 100以内可以累加为100的整数组合