用循环实现
#include <stdio.h>
#include <stdlib.h>
void printN( int N );
int main()
{
system("color f5");
int a;
scanf("%d",&a);
printN(a);
system("pause");
return 0;
}
void printN( int N )
{
int i;
for( i=1; i<=N ; i++ )
{
printf("%d\n",i);
}
}
用递归实现
#include <stdio.h>
#include <stdlib.h>
void printN( int N );
int main()
{
system("color f5");
int a;
scanf("%d",&a);
printN(a);
system("pause");
return 0;
}
void printN( int N )
{
if(N)
{
printN( N-1 );
printf("%d\n",N);
}
}
看似递归和循环的代码相似甚至于递归代码还比较方便但是在输入的数字为十万时使用递归的程序却无法执行了这恰恰反映了递归对程序的内存占用过大