
m,n均为自然数,m可表示为不超过n的自然数之和,是编写函数f(m,n)计算表示这种方式的数目。例如f(5,3)=5。 10
m,n均为自然数,m可表示为不超过n的自然数之和,是编写函数f(m,n)计算表示这种方式的数目。例如f(5,3)=5。有五种表示方式:3+2,3+1+1,2+2=1,2+...
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。
展开
1个回答
展开全部
代码如下:
#include <iostream>
using namespace std;
int f(int m,int 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);
}
int main()
{
int m,n;
while(cin>>m>>n)
{
cout<<f(m,n)<<endl;
}
system("pasue");
return 0;
}
#include <iostream>
using namespace std;
int f(int m,int 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);
}
int main()
{
int m,n;
while(cin>>m>>n)
{
cout<<f(m,n)<<endl;
}
system("pasue");
return 0;
}
参考资料: http://hi.baidu.com/%BE%B8%D6%BE/blog/item/1efba635ba5af844241f1425.html
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询