注册 登录
编程论坛 C++教室

一个递归问题!!

fcc1234 发布于 2005-03-30 20:50, 741 次点击
#include <iostream>
using namespace std;
int qiuh(int);
int main()
{
 int number,Number;
 cin>>number;
 Number=qiuh(number);
 cout<<Number<<endl;
 return 0;
}
int qiuh(int num)
{
 int Num,sum=0;
 while(num)
 {
 Num=num%10;
 sum=sum+Num;
qiuh(num/10);}
 return sum;
}这是一个递归求和问题,请问有什么问题?
6 回复
#2
逍灵剑2005-03-30 21:53
以下是引用fcc1234在2005-3-30 20:50:57的发言: #include <iostream> using namespace std; int qiuh(int); int main() { int number,Number; cin>>number; Number=qiuh(number); cout<<Number<<endl; return 0; } int qiuh(int num) { int Num,sum=0; while(num) { Num=num%10; sum=sum+Num; qiuh(num/10);} //没有改变num,死循环,改成:num/=10;qiuh(num); return sum; }这是一个递归求和问题,请问有什么问题?
#3
surivering2005-04-09 11:48
#include &lt;iostream&gt;
using namespace std;
int qiuh(int);
int main()
{
int number,Number;
cin&gt;&gt;number;
Number=qiuh(number);
cout&lt;&lt;Number&lt;&lt;endl;
return 0;
}
int qiuh(int num)
{
int Num,sum=0;
while(num)
{
Num=num%10;
sum=sum+Num;
qiuh(num/10);   //只要改成num/=10;
return sum; }        
#4
catylifen2005-04-09 21:09
用你的原程序运行的话好象会导致死循环也!!可以做个病毒哦
#5
catylifen2005-04-09 21:45
原来它对应的反汇编程序里面最后是一条无条件转移,而且转移的地址就在它的前面。是个无条件循环!至于这个逻辑嘛,分析了半天,被搞晕糊涂了
1