递归说白了,就是从后向前推导,直到找到确定的值才终止查找,
然后在从查找到的结果往后推,求出你所要求的值!!
递推就是从已知直接向后推,直到找到你要的结果后才终止!!
下面我用两个简单的例子来说明他们俩的区别:
求n!的值?
递归
#include<iostream>
using namespace std;
int main()
{
__int64 f(int m);
int n;
while(cin>>n)
{
printf("%I64d\n",f(n));
}
return 0;
}
递推代码:
#include<iostream>
using namespace std;
int main()
{
int n,sum;
while(cin>>n)
{
sum=1;
for(int i=1;i<=n;i++)
sum=sum*i;
cout<<sum<<endl;
}
return 0;
}
__int64 f(int m)
{
if(m==1||m==0)
return 1;
return m*f(m-1);
}