java输出整数划分
转载%77%77%77请%2E%66%6F%72%61%73%70%2E%63%6E注明
java实现的整数划分,老师作业上面,让输出整数划分,开始怎么也不明吧,后来仔细琢磨后才了解
import java.util.Scanner;
public class fenjie{//来源于网络,学习后更改为目前需求 http://blog.sina.com.cn/s/blog_7ea6850b0100qmlh.html
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
String s="";
for(int i=n;i>0;i--)
{
if(i!=n){g(s+i, i, n-i);
}else{
System.out.println(i);
continue;
}
}
}
//first表示分解出的第一个数,other表示n减去first之后剩余的数
public static void g(String s,int f,int o)
{if(o<0) return;
if(o==0) System.out.println(s);
for(int i=o;i>0;i--)if(i<=f)g(s+" "+i, i, o-i); //保证分解中,前面的数不小于后面的数
}
}
//输入 6 输出
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
原载于:本文原载于www.forasp.cn