求表示方法
设 m、n 均为自然数,m 可表示为一些不超过 n 的自然数之和,f(m,n) 为这种表示方式的数目。
例如,f(5,3)=5,有5种表示方法:3+2,3+1+1,2+2+1,2+1+1+1,1+1+1+1+1。
请编写程序,计算f(m,n)的值。
输入:
m n
输出:
f(m,n)的值
| 测试输入 | 期待的输出 | 时间限制 | 内存限制 | 额外进程 | |
|---|---|---|---|---|---|
| 测试用例 1 | 以文本方式显示
| 以文本方式显示
| 1秒 | 64M | 0 |
| 测试用例 2 | 以文本方式显示
| 以文本方式显示
| 1秒 | 64M | 0 |
源代码:
#include<stdio.h>
int f(int m, int n)
{
if(m<=1||n<=1)
return 1;
else if(m<n)
return f(m,m);
else
return f(m-n,n) + f(m,n-1);
}
int main()
{
int m,n;
scanf("%d%d",&m,&n);
printf("%d\n",f(m,n));
return 0;
}
本文介绍了一种计算特定条件下自然数表示方法数量的方法。给定两个自然数m和n,f(m,n)表示m可以由哪些不超过n的自然数之和组成的方案总数。文章通过举例说明了该问题,并提供了一个递归算法实现。
648

被折叠的 条评论
为什么被折叠?



