您的位置:首页 > 编程语言 > Java开发

2011JAVA本科蓝桥杯模拟(3)[整数的分划问题]

2013-03-25 20:30 375 查看
整数的分划问题。

如,对于正整数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)

程序输出该整数的所有划分。

-----------------------------------------------------------------------------

ps:作者乃一神人

package java2011Yangti;

import java.util.Scanner;

public class M9 {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

int n = sc.nextInt();
for (int i = n; i > 0; i--) {
find("" + i, n - i, i);
System.out.println("");
}
}

public static void find(String Str, int last, int max) {
if (last < 0)
return;
if (last == 0)
System.out.print(Str + " ");
for (int i = max; i > 0; i--) {
find(Str + "+" + i, last - i, i);
}
}
}


链接出处:http://hi.baidu.com/hanna0913/item/fd079d0e76c98c80a2df43a7
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: