作者在 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种方法是帮群里的人解决的,由于递归是逆向的,容易出问题,非递归是顺向的