m表示为一些不超过n的自然数之和

自然数表示方式数目的函数实现
博客给出一个计算自然数 m 表示为不超过 n 的自然数之和的表示方式数目的函数 f(m,n)。通过递归方式实现该函数,给出了不同 m 和 n 取值下的边界条件及递归关系,并在主函数中调用该函数计算 f(6,4) 和 f(111,10) 并输出结果。

/*
设m,n均为自然数,m可表示为一些不超过n的自然数之和,
f(m,n)为这种表示方式的数目。
例:f(5,3)=5,有五种表示方式:
3+2,3+1+1,2+2+1,2+1+1+1,1+1+1+1+1
*/
int f(m,n) int m,n;
{
 if(m==1)return 1;
 if(n==1)return 1;
 if(m<n) return f(m,m);
 if(m==n)return 1+f(m,n-1);
 return f(m,n-1)+f(m-n,n);
}
main()
{
 int num;
 num=f(6,4);
 printf("f(6,4)=%d/n",num);
 num=f(111,10);
 printf("f(111,10)=%d/n",num);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值