基本的递归函数

  以前一开始接触递归,真的很难理解那到底是怎么运行的。但是昨天化了一晚上理解完了一段python语言中的一段递归后,顿时豁然开朗了。完全搞明白后,自己又写了cpp中的pow函数和iterate函数,分别用于求某数的次方和累加和。
  递归函数前面的一部分要写明什么时候跳出这个循环。比如求a的b次方的函数,就要写明当b等于1的时候,跳出循环,返还a。(可惜一开始写的时候又一次写成了b=1)。

    if(b==1)
    return a;

  接下来是如果不符合条件,就再一次进入循环:c=a*pow(a,b-1);
当然重新调用递归函数时参数要修改一下,使其更接近跳出循环的那个值。

    horatio@horatio-OptiPlex-3010:~/c$ vim recursion.cpp
    horatio@horatio-OptiPlex-3010:~/c$ g++ recursion.cpp -o recursion
    horatio@horatio-OptiPlex-3010:~/c$ ./recursion

  首先在c文件夹中建立文本,输入下面的代码,然后编译,最后执行。

#include<iostream>
using namespace std;
int pow(int a,int b)
{
    int c=0;
    if(b==1)
    return a;
    c=a*pow(a,b-1);
    return c;
}
int iterate(int a)
{
    int c=0;
    if(a==1)
    return 1;
    c=a+iterate(a-1);
    return c;
}
int main()
{
    int i=2;
    int j=10;
    int x=0,y=0;
    x=pow(i,j);
    y=iterate(j);
    cout<<x<<endl;
    cout<<y<<endl;
    return(0);
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章