所谓递归,即函数在执行过程中调用自身(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
}
|