首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

高手来帮忙了解决方法

2012-04-26 
高手来帮忙了#includeiostreamusing namespace stdint q(int n,int m){if(nm1)q(n,m)1if(nm!

高手来帮忙了
#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) &amp;&amp; (m == 1))
if ((n != 1) &amp;&amp; (m != 1))******
逻辑上应该是这样的吧。

热点排行