#include<stdio.h> #include<stdlib.h> void printN1(int n) { for(int i=1;i<=n;i++) printf("%d\n",i); } void printN2(int n) { if(n) { printN2(n-1); printf("%d\n",n); } return; } int main() { int n; scanf("%d",&n); printN1(n); // printN2(n); return 0; }
用上面的代码是用for循环输出1-100000个数,虽然时间长但是还是能输出的。
如果使用递归时输出1-100000时
#include<stdio.h> #include<stdlib.h> void printN1(int n) { for(int i=1;i<=n;i++) printf("%d\n",i); } void printN2(int n) { if(n) { printN2(n-1); printf("%d\n",n); } return; } int main() { int n; scanf("%d",&n); // printN1(n); printN2(n); return 0; }
递归占用了很大的空间,所以程序会崩溃。