2 tracyjack123 tracyjack123 于 2016.02.18 11:09 提问

c++编写的换零钱问题(用的递归)

#include
using namespace std;
int c(int m);
int a(int p,int q)
{
if(p==0)
return 1;
else if((p<0) || (q=0))
return 0;
else
return a(p-c(q),q)+a(p,q-1);
}
int c(int m)
{
switch(m)
{
case(1):
return 1;
break;
case(2):
return 5;
break;
case(3):
return 10;
break;
case(4):
return 20;
break;
case(5):
return 50;
break;
default:
return 100;
break;
}
}
int main()
{
cout<<a(20,3);
return 0;
}
这个程序哪里出错?是递归有问题还是if语句的使用有问题?谢谢

2个回答

qq423399099
qq423399099   Ds   Rxr 2016.02.18 11:27
已采纳

else if((p<0) || (q=0)) 应该是q==0吧

tracyjack123
tracyjack123 对了,谢谢
接近 2 年之前 回复
enpterexpress
enpterexpress   2016.02.18 11:16

是不是报不是所有路径都有返回值的错

tracyjack123
tracyjack123 请问该怎么看?
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!