六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 38|回复: 0

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

[复制链接]

升级  10.8%

386

主题

386

主题

386

主题

探花

Rank: 6Rank: 6

积分
1216
 楼主| 发表于 2013-2-7 15:23:19 | 显示全部楼层 |阅读模式
论坛地址: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 />
  • }
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表