【思特奇杯·云上蓝桥-算法集训营】第1周 整数划分

对于一个正整数 n 的划分,就是把 n 变成一系列正整数之和的表达式。注意,划分与顺序无关,例如 6=5+1.跟 6=1+5 是同一种分划,

另外,这个整数本身也是 一种分划。

例如:对于正整数 n=5,可以划分为:

1+1+1+1+1

1+1+1+2

1+1+3

1+2+2

2+3

1+4

5

输入描述

输入一个正整数 n 

输出描述

输出 n 整数划分的总数

 输入样例 5

输出样例 7

这个问题整数的划分问题,我更愿称之为分苹果问题。

即给n个苹果,m个盘子。总共有多少种分法。

首先,当苹果少,盘子多。即n<m.

此时,你会发现无论怎么分,肯定有盘子是没有苹果的。因为按n个苹果最多只能占用n个盘子。

那么我们不妨,假设m个盘子依次排开,这时随着分法的改变,只有前n个盘子里面的苹果数量在改变,而后m-n个盘子始终为空。那么这就意味着这个问题只与前n个盘子有关。

即当n<m时,f(n,m)=f(n,n)

(当然如果n<=m,也肯定存在有盘子没苹果的分法,但也肯定存在苹果分完后不存在空盘子的情况,因此此时上述等式肯定是不成立的)

其次,当苹果多,盘子少。即n>=m

此时,一定存在着每个盘子上都存在着苹果的情况,以及有的盘子上没有苹果的情况。

通过思考我们可以得出,此时的总分法可以分为

1.每个盘子上都至少存在着一个苹果。即每一个盘子上一定至少有一个苹果。

2.存在至少一个盘子没有苹果。即有的盘子没有苹果。

很显然,所有的分法就等于分法一和分法二的和。

那么对于分法一,我们很容易抽象出来函数f(n-m,m).即只剩下n-m个苹果需要在m个盘子上去分。

而对于分法二,抽象出来一个函数并不是很容易。那么接下来我们思考这句话至少有一个盘子上是不存在苹果的。我们不妨认为这个盘子就是第一个盘子。第一个盘子上面不存在苹果。那这个问题就变成了m-1个盘子分n个苹果。即抽象出来函数f(m-1,n)

所以当n>=m 时

f(n,m)=f(n-m,m)+f(n,m-1)

最后显然,当盘子为一个或者苹果为一个的时候,此时只有一种分法。

而对于盘子为0个或者苹果为0个,定义也只存在一种分法。

那么代码如下:

#include <iostream>
using namespace std;
int main()
{   
    int n;
    int apple(int n,int m);
    
    cin >> n;
    cout << apple(n,n) << endl;
    return 0;
}
int apple(int n,int m)
{
    if(n<=1 || m<=1)
        return 1;
    if(m>n)
        return apple(n,n);
    if(n>=m)
        return apple(n-m,m) + apple(n,m-1);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 思特威(Datasheet)是一种技术文档,其主要目的是提供有关特定产品或设备的技术规格和详细信息。通过阅读思特威,用户可以了解该产品的功能、性能、尺寸、接口和电气特性等重要信息。 在思特威中,常见的内容包括产品的规格参数、功能特点、性能指标、工作条件、接口定义、电器特性、示意图以及连接示例等。这些信息对于开发人员、工程师、以及产品消费者都非常重要。工程师们可以利用思特威来了解和评估产品是否满足其需求和规格要求。消费者则可以通过思特威了解产品的功能和性能,以便做出购买决策。 思特威通常以简洁且易读的方式呈现,使用技术术语和图表来提供必要的信息。一份完整的思特威应该包括产品的物理尺寸和重量、工作电压和功率要求、接口类型和规格、传输速率、最大传输距离、环境工作温度范围、支持的协议标准等。 对于技术人员来说,思特威是他们在设计和开发产品时的重要参考资料。通过对Datasheet进行仔细研究,他们可以更好地了解产品的特性和限制,从而能够做出更好的设计决策。同时,思特威还可以作为售后服务的重要参考,提供产品的详细规格和性能信息,以便用户能够更好地了解和操作产品。 总而言之,思特威是一份技术文档,旨在提供关于特定产品的详细规格和技术信息。通过阅读思特威,用户可以全面了解产品的功能、性能和特性,以及使用该产品时的限制和条件。 ### 回答2: 思特威 datasheet 是指思特威公司产品的技术规格表。该规格表提供了关于该产品的详细信息,包括但不限于产品的规格、性能参数、接口配置、功能特点等。 在思特威 datasheet 中,首先会列出产品的基本信息,例如产品名称、型号以及适用范围等。接下来,会详细介绍产品的物理外观和尺寸,以及各个接口的类型和数量。这些信息对于用户来说非常重要,可以帮助他们了解产品的大小和适应性。 此外,datasheet中还会列出产品的性能参数,包括但不限于传输速率、工作温度范围、功耗、电压要求等。这些参数对用户来说也是至关重要的,可以帮助他们确定产品是否符合其需求。 在datasheet中,还会详细描述产品的功能特点和技术规格。例如,如果是一款网络设备,会介绍其支持的网络标准、安全功能、管理方式等。通过这些介绍,用户可以更好地了解产品的性能和功能,从而更好地评估其是否适合自己的应用场景。 综上所述,思特威 datasheet 是一份非常重要的技术规格表,提供了关于该产品的详细信息。通过阅读和理解该规格表,用户可以更好地了解产品的性能、功能和适用性,从而做出正确的购买和使用决策。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值