递归和非递归调用

作者在 2010-05-07 17:27:15 发布以下内容

代码1: 不是递归的
#include<iostream>
using namespace std;
int dg(int n)
{
 int i,t;
    for(i=0;i<=n;i++)
 {
  if(i==0)
   t=1;
  else
   t=t*i;
 }
  return t;
   
}
int main(void)
{
    int a;
    cin>>a;
    cout<<dg(a)<<endl;
   
 //system("pause");
 return 0;   
}

 

2.递归的时候是这样的:
#include<iostream>
using namespace std;
int dg(int n)
{
    if(n==0)   //n==0 的分支
 {
  return 1;
 }
 if(n>0)  //n>0的分支 
 {
    return n*dg(n-1);
    }
}

int main(void)
{
    int a;
    cin>>a;
    cout<<dg(a)<<endl;
   
 //system("pause");
 return 0;   
}

以上2种方法是帮群里的人解决的,由于递归是逆向的,容易出问题,非递归是顺向的

c/c++/VC6.0 | 阅读 728 次
文章评论,共0条
游客请输入验证码