读书人

高手来帮忙了解决方法

发布时间: 2012-04-26 14:01:31 作者: rapoo

高手来帮忙了
#include<iostream>
using namespace std;
int q(int n,int m)
{
if(n==m==1)
q(n,m)==1;
if(n==m!=1)
return 1+q(n,n-1);
if(n<m)
return q(n,n);
if(m>1&&m<n)
return q(n,m-1)+q(n-m,m);
}
int main()
{
int i;
cout<<"请输入一个正整数:";
cin>>i;
cout<<"该数的划分个数是:"<<q(i,i-1)<<endl;
return 0;
}
帮忙找一下问题?

[解决办法]
该数的划分个数 是 怎么求的?
[解决办法]
楼主,看下,是不是这样,另外楼主注意结贴率。

C/C++ code
#include<iostream>using namespace std;int q(int n,int m){    if(n==1 && m ==1)        return 1;    if(n == m&& n!=1 && m != 1)        return 1+q(n,n-1);    if(n<m)        return q(n,n);    if(m>1&&m<n)          return q(n,m-1)+q(n-m,m);}int main(){    int i;    cout<<"请输入一个正整数:";    cin>>i;    cout<<"该数的划分个数是:"<<q(i,i-1)<<endl;    return 0;}
[解决办法]
int q(int n,int m)
{
if(n==m==1)
q(n,m)==1; //这里是什么意思?结果是bool值
if(n==m !=1)
return 1+q(n,n-1);
if(n<m)
return q(n,n);
if(m>1&&m<n)
return q(n,m-1)+q(n-m,m);
}
[解决办法]
if(n==m==1)
if(n==m!=1)
这两句在编译的时候我想回给提示的。应该改为:
if ((n == 1) && (m == 1))
if ((n != 1) && (m != 1))
逻辑上应该是这样的吧。
[解决办法]
探讨
if(n==m==1)
if(n==m!=1)
这两句在编译的时候我想回给提示的。应该改为:
if ((n == 1) && (m == 1))
if ((n != 1) && (m != 1))******
逻辑上应该是这样的吧。

读书人网 >C++

热点推荐