把一个数分解成任意几个数之和
例如:4的结果有,(1+3),(2+2),(1+1+2),(1+1+1+1)
public class Demo {// 存储每次分割的值static int[] arr;// 需要分割的值static int num = 4;public static void main(String[] args) {// 分割的值最多分成1+1+...+1 最多就是他本身的长度arr = new int[num];search(num,1,0);}/*** 计算* @param n 需要计算的数* @param s 需要拆分的最小数* @param x 分割存储的下标*/private static void search(int n, int s, int x) {// 当需要计算的数大于0的时候才开始计算if(n>0) {for(int i=s;i<=n;i++) {// 存储本次分割出的值arr[x]=i;// 计算分割剩余的值 同时存储的下标+1search(n-i,i,x+1);}return;}// 如果分割的值和分割出来的第一个值相同时 说明该值不可分割 不进行输出if(num != arr[0])System.out.print(num+"="+arr[0]);// 循环把分割出来的数组拼接for(int i=1;i
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
