求表示方法
设 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;
}