码迷,mamicode.com
首页 > 其他好文 > 详细

最容易理解的划分数算法

时间:2014-09-05 23:52:02      阅读:316      评论:0      收藏:0      [点我收藏+]

标签:划分数   算法   

这是划分数的常见解法


上面的解法我完全没有理解,怎么都没有理解怎么会想到这样去做递归,智商太低没办法。

但是没有关系,我还是绞尽脑汁想到了一种方法,即使常见的构建回溯树的方式。虽然消耗了些多余的空间,但是也算不错,代码简单有用。


当求 4的划分数时我是这样构建树的:bubuko.com,布布扣(在只是画了两层,如下的树我们则可以用来遍历求和,如果和等于 4则划分数 +1)

bubuko.com,布布扣

                                                              



 

 public class HuaFen{
  
       public int num; //需要划分的个数    
       //n表示需要划分的值, m表示迭代到的层数,count表示当前的总和
       public  void  huaFen(int n,int m,int count){
           
          for( ; m<=n;m++){
               //如果大于了我们需要的值则往上走吧,不需要再往下走了
               System.out.println("count"+count);
              if(count+m>n ){
              }
 
              if(count+m==n ){
                  num++;
              }
 
              if(count+m<n){
                  huaFen(n,m,count+m);
              }
          }
          
 
 
      }
 
    
      public static void main(String args[]){
 
          HuaFen huan = new HuaFen();
          huan.huaFen(7,1,0);
          System.out.println(huan.num);
      }
  }




最容易理解的划分数算法

标签:划分数   算法   

原文地址:http://blog.csdn.net/andan14/article/details/39085679

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!