分解自然数 题解

T1:

【题目描述】

输入自然数 n(n<100),输出所有和的形式。不能重复。如:4=1+1+2;4=1+2+1;4=2+1+1 属于一种分解形式。

【样例输入】

7

【样例输出】

1:7=1+6

2:7=1+1+5

3:7=1+1+1+4

4:7=1+1+1+1+3

5:7=1+1+1+1+1+2

6:7=1+1+1+1+1+1+1

7:7=1+1+1+2+2

8:7=1+1+2+3

9:7=1+2+4

10:7=1+2+2+2

11:7=1+3+3

12:7=2+5

13:7=2+2+3

14:7=3+4

T2:

【题目描述】

输入自然数 n 和 m(n,m<100),输出所有分解,分解后的每一项都不大于 m 的。不能重复。如:4=1+1+2;4=1+2+1;4=2+1+1 属于一种分解形式。

【样例输入】

7 4

【样例输出】

1:7=1+1+1+4

2:7=1+1+1+1+3

3:7=1+1+1+1+1+2

4:7=1+1+1+1+1+1+1

5:7=1+1+1+2+2

6:7=1+1+2+3

7:7=1+2+4

8:7=1+2+2+2

9:7=1+3+3

10:7=2+2+3

11:7=3+4

T3:

【题目描述】

输入自然数 n 和 m(n,m<100),输出所有分解项数不超过 m 的所有形式。不能重复。如:4=1+1+2;4=1+2+1;4=2+1+1 属于一种分解形式。

【样例输入】

7  4

【样例输出】

1:7=1+6

2:7=1+1+5

3:7=1+1+1+4

4:7=1+1+2+3

5:7=1+2+4

6:7=1+2+2+2

7:7=1+3+3

8:7=2+5

9:7=2+2+3

10:7=3+4

=======================题解===================

递归函数中传入两个参数x,y,分别是当前n的值与项数,函数体内循环1~x/2,当最大的加数小于n时,在答案数组的第y个元素中存当前循环的值,y+1中存n-i,这样每递归一次就是一种情况,只要在调函数前输出即可,之后再传入当前n值减去i作为递归到下一层的n值,若对最大加数与项数有限制则需要在存的时候判断一下。


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值