题目:
如,对于正整数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+1
现在的问题是,对于给定的正整数n,编写算法打印所有划分。
用户从键盘输入 n(范围1~10)
程序输出该整数的所有划分。
解答:
public class bc33_m { static int num; public static void main(String[] args) { Scanner scan=new Scanner(System.in); System.out.println("输入一个正整数:"); num=scan.nextInt(); for(int i=num;i>0;i--){ find(i,i,i+""); System.out.println(); } } public static void find(int start,int sum,String res){ if(sum==num) System.out.print(res+","); if(sum>num) return; for(int i=start;i>0;i--){ find(i,sum+i,res+"+"+i); } } }
版权声明:本文为博主原创文章,未经博主允许不得转载。