A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© syd957594556 中级黑马   /  2016-6-8 20:55  /  676 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

标题:数字拆分


  正整数可以表示为若干正整数的累加和。


  如,对于正整数n=6,可以分划为:
6
5+1
4+2
4+1+1
3+3
3+2+1
3+1+1+1
2+2+2
2+2+1+1
2+1+1+1+1
1+1+1+1+1+1


  现在的问题是,对于给定的正整数n,计算出所有划分情况。

  下面的代码实现了这个功能。仔细分析,填写划线部分缺失的代码。




[java] view plain copy


  • public class fuzhi  
  • {   public static List fen(int n, int limit)  
  •     {  
  •         Vector v = new Vector();  
  •         if(n<=limit) v.add(n);  
  •          
  •         for(int i=1; i<n; i++)  
  •         {  
  •             if(n-i > limit) continue;  
  •   
  •   
  •             List t = fen(i,n-i);  
  •               
  •             for(int k=0; k<t.size(); k++)  
  •                 v.add(n-i+"+"+t.get(k));  //填空位置  
  •         }  
  •          
  •         return v;  
  •     }  
  •       
  •     public static void main(String[] args)  
  •     {         
  •         List v = fen(6,6);        
  •         for(int i=0; i<v.size(); i++)  
  •             System.out.println(v.get(i));  
  •     }  
  • }  

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马