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