整数划分问题(Java实现)

问题描述: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

public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.print("请输入你要划分的整数n=");
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int sn = _mysplit(n,n);
		System.out.println("整数"+n+"划分的结果为:"+sn);
	}
	static int _mysplit(int n,int m){
		if(n==m) return _mysplit(n,n-1)+1;//自己本身这一次
		else if(n==1||m==1) return 1;//全是1的那一次
		else if(n<m) return _mysplit(n,n);//情况基本不存在
		else return _mysplit(n,m-1)+_mysplit(n-m,m);//最后的情况将他们进行拆分		
	}

发布了20 篇原创文章 · 获赞 2 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_39056803/article/details/80868428