遞迴和非遞迴分別實現求n的階乘
//遞迴和非遞迴分別實現求n的階乘
#include<stdio.h>
#include<stdlib.h>
int a(int n)
{
if(n>1)
{
return n * a(n-1);
}
return 1;
}
int b(int n)
{
int s = 1;
for(; n>=1; n--)
{
s *= n;
}
return s;
}
int main()
{
int n = 0;
printf("請輸入n:\n");
scanf("%d",&n);
printf("%d!=%d\n",n,a(n));
printf("%d!=%d\n",n,b(n));
system("pause");
return 0;
}
注意:這裡我在剛開始寫遞迴的程式碼時,判斷條件是如果n=1;返回1;
這時候會進入遞迴但是得到的結果都將是1。希望大家在使用遞迴時一定要注意這個問題。
相關文章
- c#遞迴實現 階乘C#遞迴
- 二分法的簡單實現——-遞迴和非遞迴遞迴
- 用遞迴方法求10的階乘遞迴
- Android遍歷所有控制元件的遞迴和非遞迴實現Android控制元件遞迴
- 遞迴的列印和階乘運用遞迴
- python-動態規劃的遞迴、非遞迴實現Python動態規劃遞迴
- 快速排序【遞迴】【非遞迴】排序遞迴
- 歸併排序的非遞迴實現排序遞迴
- fibonacci斐波那契數列詳解 遞迴求Fn非遞迴求Fn求n最近的斐波那契數遞迴
- 遍歷二叉樹的遞迴與非遞迴程式碼實現二叉樹遞迴
- Vue3.0的遞迴監聽和非遞迴監聽Vue遞迴
- 遞迴和尾遞迴遞迴
- 資料結構初階--二叉樹(前中後序遍歷遞迴+非遞迴實現+相關求算結點實現)資料結構二叉樹遞迴
- 遍歷二叉樹-------遞迴&非遞迴二叉樹遞迴
- 二十一、氣泡排序演算法——JAVA實現(遞迴與非遞迴)排序演算法Java遞迴
- python實現二叉樹及其七種遍歷方式(遞迴+非遞迴)Python二叉樹遞迴
- Java語言非遞迴求第n個斐波那契數Java遞迴
- 資料結構-樹以及深度、廣度優先遍歷(遞迴和非遞迴,python實現)資料結構遞迴Python
- 棧實現遞迴遞迴
- lambda實現遞迴遞迴
- 揹包問題的遞迴與非遞迴演算法遞迴演算法
- 什麼是遞迴?遞迴和迴圈的異同遞迴
- 【C++】翻轉二叉樹(遞迴、非遞迴)C++二叉樹遞迴
- 快速排序(遞迴及非遞迴演算法原始碼)排序遞迴演算法原始碼
- 二叉樹的前中後序遍歷(遞迴和非遞迴版本)二叉樹遞迴
- 0 遞迴求最大值 (100分)遞迴
- 二叉樹的四種遍歷(遞迴與非遞迴)二叉樹遞迴
- 非遞迴實現先序遍歷和中序遍歷遞迴
- 遞迴實現原則遞迴
- 二叉樹的所有遍歷非遞迴實現二叉樹遞迴
- 通過階乘的例子,練習在JavaScript, Scala和ABAP裡實現尾遞迴(Tail Recursion)JavaScript遞迴AI
- 遞迴和遞推總結遞迴
- 什麼是遍歷二叉樹,JavaScript實現二叉樹的遍歷(遞迴,非遞迴)二叉樹JavaScript遞迴
- 目標和——遞迴的實踐遞迴
- 二分查詢的兩種實現形式遞迴和迭代遞迴
- 最新情報:所有的遞迴都可以改寫成非遞迴?遞迴
- 實驗三:分別用for、while和do-while迴圈語句以及遞迴方法計算n!,並輸出算式While遞迴
- 二叉樹——後序遍歷的遞迴與非遞迴演算法二叉樹遞迴演算法