循环和递归的区别
對于遞歸和循環相比較
遞歸的代碼比較簡潔,容易讓別人理解,也容易讓自己理解,但是占用的空間非常大,有的時候在實現功能時,把所能用的空間全都用掉,可能還不夠,此時就會崩潰,而不進行任何操作,計算機不一定愿意去實現,而且循環和遞歸實現同一功能時所用時間基本是沒有什么差別的.
解決問題方法的效率跟空間的利用效率有關
//遞歸法
#include <stdio.h>
#include <stdlib.h>
void PrintN(int N);
int main()
{int N;scanf("%d",&N);PrintN(N);return 0;
}
void PrintN(int N)
{if(N){PrintN(N-1);printf("%d\n",N);}return 0;
}
//循環法
#include <stdio.h>
#include <stdlib.h>
void PrintN(int N);
int main()
{int N;scanf("%d",&N);PrintN(N);return 0;
}
void PrintN(int N)
{int i;for(i=1;i<=N;i++){printf("%d\n",i);}return 0;
}
總結
- 上一篇: 爱奇艺里的家有儿女初成长观看顺序是怎样的
- 下一篇: javascript的Math对象和全局