c语言n次方怎么输入_C语言实现斐波拉契数列
C語言實現斐波拉契數列教程
怎么使用 C 語言實現計算斐波拉契數列的第 N 項的值?
C語言實現斐波拉契數列詳解
背景知識
斐波那契數列是一組第一位和第二位為 1,從第三位開始,后一位是前兩位和的一組遞增數列,像這樣的:1、1、2、3、5、8、13、21、34、55 ......。
我們可以看到,此數列的第一位和第二位都是 1,第三位的值是第一位和第二位的和、第四位的值是第二位和第三位的和、第無位的值是第三位和第四位的和、依次類推。
解題思路一
看到此類問題,我們最優先想到的就是使用遞歸來實現該算法,遞歸的出口條件是第一項或者第二項值都是 1,否則,第 N 項的值是第 N - 1 項的值加上第 N - 2 項的值。
解題思路二
我們可以使用 for 循環,從第一項和第二項開始計算,一直計算到我們需要求的第 N 項的值。每次計算的值使用變量進行臨時保存即可。
C語言實現斐波拉契數列實現
遞歸實現
使用遞歸實現求解斐波拉契數列的值
#include int Fibonacci(int n){if (n == 1 || n == 2){//如果是第一項或者是第二項,值都是 1 return 1;}else{//開始遞歸,n 項的值就是 n-1 項的值和 n-2 項的值 return Fibonacci(n - 1) + Fibonacci(n - 2); }}int main(){printf("嗨客網(www.haicoder.net)");int n = 0;printf("請輸入要求的項:");scanf("%d", &n);int result = Fibonacci(n);printf("result = %d", result);return 0;}程序運行后,控制臺輸出如下:
我們單獨定義了一個函數 Fibonacci,在該函數里面,我們使用 if 判斷如果 n 的值為 1 或者 2 則直接返回 1,這就是遞歸的出口。
否則,我們則繼續調用 Fibonacci 函數,返回第 N - 1 項和第 N - 2 項的和,這里就是遞歸的開始。最后,我們輸入了 10,返回了 55。
for循環實現
使用 for 循環加上臨時變量實現求解斐波拉契數列的值
#include int Fibonacci(int n){int num1 = 1, num2 = 1, temp = 0, i = 0;if (n == 1 || n == 2){return 1;}else{for (i = 0; i < n-2; i++){temp = num1 + num2;num1 = num2;num2 = temp;}return temp;} }int main(){printf("嗨客網(www.haicoder.net)");int n = 0;printf("請輸入要求的項:");scanf("%d", &n);int result = Fibonacci(n);printf("result = %d", result);return 0;}程序運行后,控制臺輸出如下:
我們單獨定義了一個函數 Fibonacci,在該函數里面,我們使用 if 判斷如果 n 的值為 1 或者 2 則直接返回 1。
否則,我們則使用 for 循環計算 n - 2 次,同時,將每次的計算結果保存在臨時變量 temp 中,一輪計算結束,將變量 num2 賦給 num1,將臨時變量 temp 賦值給 num2。最后,我們輸入了 10,返回了 55。
## C語言實現斐波拉契數列總結
使用 C 語言實現計算斐波拉契數列的第 N 項的值有兩種方法,第一種就是使用遞歸實現,第二種則是使用 for 循環按個計算。
總結
以上是生活随笔為你收集整理的c语言n次方怎么输入_C语言实现斐波拉契数列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为s8600手机驱动_只有手机才能快充
- 下一篇: 欧姆龙cp1hum读保护解密步骤_欧姆龙