蓝桥杯+数字拆分

本文详细介绍了如何将正整数表示为若干正整数的累加和,并通过示例展示了不同划分方法。代码实现提供了计算给定正整数所有划分情况的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



标题:数字拆分


  正整数可以表示为若干正整数的累加和。


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


  现在的问题是,对于给定的正整数n,计算出所有划分情况。

  下面的代码实现了这个功能。仔细分析,填写划线部分缺失的代码。


public class fuzhi
{	public static List fen(int n, int limit)
	{
		Vector v = new Vector();
		if(n<=limit) v.add(n);
		
		for(int i=1; i<n; i++)
		{
			if(n-i > limit) continue;


			List t = fen(i,n-i);
			
			for(int k=0; k<t.size(); k++)
				v.add(n-i+"+"+t.get(k));  //填空位置
		}
		
		return v;
	}
	
	public static void main(String[] args)
	{		
		List v = fen(6,6);		
		for(int i=0; i<v.size(); i++)
			System.out.println(v.get(i));
	}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值