1028 数的计算

博客探讨了一种计算数的分割种类问题,通过递归的方式推导公式,并给出C++代码实现。以4为例,解释了如何计算14, 24, 124等组合,并展示了一个简单的递归函数f[n]来计算n的分割种类。

1028 数的计算

我表示我没有看懂这个题
如果以4为例子的话,我们可以列举以下的数据
4前面可以跟上1,2组成14,24
14跟不了,24可以跟上1组成124
再加上4本身就可以得到4的种类
即 14,24,124,4
那么我们将一系列的都加上来看一下
因为像这种数论其实没有什么,就是推公式
f[1]=1
f[2]=2=f[1]+1
f[3]=2=f[1]+1
f[4]=4=f[1]+f[2]+1
f[5]=4=f[1]+f[2]+1
这个一无例外就是加的本身,前面所搞得就是根据奇偶的关系了

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
#include<cstring>
#include<string>
using namespace std;
int n;
int f[1010];
int main()
{	
    cin>>n;
    for(int i=1;i<=n;i++)
	{
        for(int j=1;j<=i/2;j++)//奇偶数的叠加 
		{
            f[i]+=f[j]; 
        }
        f[i]++; //自己本身的算法 
    }
    cout<<f[n];//输出n的分割种类 
    return 0;
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值