整数的分划问题。
如,对于正整数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 static void main(String[] args) {
Scanner sca = new Scanner(System.in);
int n = sca.nextInt();
int m = n;
int m2 = 0;
String str = "";
if(n == 1) {
System.out.println(1);
}
go_to:
while(n > 1) {
n--;
if(n == 1&&m2 != 0) {
str = str+"+1";
System.out.println(n+"+"+m2+str);
break go_to;
}
if(n == 1) {
str = str+"+1";
System.out.println(n+str);
break go_to;
}
str = "";
m2 = m - n;
System.out.print(n+"+"+m2+" ");
if(m2 == 1) {
System.out.println();
}
else {
do{
m2--;
str = str + "+1";
System.out.print(n+"+"+m2+str+" ");
}while(m2 > 1);
System.out.println();
}
}
}