首页 > 代码库 > 最容易理解的划分数算法
最容易理解的划分数算法
这是划分数的常见解法
上面的解法我完全没有理解,怎么都没有理解怎么会想到这样去做递归,智商太低没办法。
但是没有关系,我还是绞尽脑汁想到了一种方法,即使常见的构建回溯树的方式。虽然消耗了些多余的空间,但是也算不错,代码简单有用。
当求 4的划分数时我是这样构建树的:(在只是画了两层,如下的树我们则可以用来遍历求和,如果和等于 4则划分数 +1)
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); } }
最容易理解的划分数算法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。