C++之函数的递归分析

来源:互联网 发布:跨河水准测量数据整理 编辑:程序博客网 时间:2024/06/05 09:25

所谓递归,即函数在执行过程中调用自身(recursive)

最经典的,也是最简单的递归函数例子:

#include <iostream>#include <stdio.h>#include <stdlib.h>int factor(int n) {    if(n==1)        return 1;    else        return n*factor(n-1);}int main(int n) {    printf("enter a n:\n");    std::cin>>n;    std::cout<<factor(n);}
函数factor就是一个递归函数的例子,输出结果为n的阶乘。

这里,main函数放在factor之前就会报错。若想main放在factor之前,factor要先声明一下,即

int factor(int);

以下是代码原文

#include <iostream>#include <stdio.h>#include <stdlib.h>int factor(int);int main(int n) {    printf("enter a n:\n");    std::cin>>n;    std::cout<<factor(n);}int factor(int n) {    if(n==1)        return 1;    else        return n*factor(n-1);}

下面是另一个递归的example~,输出n所在的地址

#include <iostream>#include <stdio.h>void recursive(int);int main(){    recursive(1);    }void recursive(int n){    printf("Level %d: The address of n is %p \n",n,&n);    if(n<4)        recursive(n+1);    printf("level %d: The address of n is %p \n",n,&n);\\ %p代表地址,对应&n}


原创粉丝点击