1循环有的时候比递归好一点,因为递归可能会需要大量的内存空间,解决问题方法的效率和空间利用率有关。
递归调用:
#include<stdio.h>
void printN(int N);
int main(){
int N;
scanf("%d",&N);
printN(N);
return 0;
}
void printN(int N){
int i=1;
if(i<=N){
printN(N-1);
printf("%d ",N);
}
return ;
}
测试结果:
循环的代码:
#include<stdio.h>
void printN(int N);
int main(){
int N;
scanf("%d",&N);
printN(N);
return 0;
}
void printN(int N){
for(int i=1;i<=N;i++){
printf("%d ",i);
}
return ;
}
运行结果:
从运行的结果可以知道,递归的次数很大时,无法正确输出结果。