1. 程式人生 > >【C語言】斐波那契數列的兩種演算法(迴圈,遞迴)

【C語言】斐波那契數列的兩種演算法(迴圈,遞迴)

#include<stdio.h>

int Fabio(int n)    //迴圈
{
	int i;
	int f1 = 1;
	int f2 = 1;
	int f3 = 1;
	for(i = 2;i<n;i++)
	{
		f3 = f1 + f2;
		f1 = f2;
		f2 = f3;
	}
	return f3;
}

int Fabio1(int n)    //遞迴
{
	if(n == 1||n ==2)
	{
		return 1;
	}
	else
	{
		return Fabio(n-1) + Fabio(n-2);
	}
}

int main()
{
	
	for(int i=1;i<7;i++)
	{
		printf("%2d",Fabio(i));
	}
	printf("\n");
	for(int i=1;i<7;i++)
	{
		printf("%2d",Fabio1(i));
	}
	printf("\n");

	return 0;
}

相關推薦

C語言數列演算法迴圈

#include<stdio.h> int Fabio(int n) //迴圈 { int i; int f1 = 1; int f2 = 1; int f3 = 1; for(i = 2;i<n;i++) { f3 = f1 + f

數列演算法的時間複雜度

斐波那契數列簡介: 斐波那契數列(Fibonacci sequence),又稱黃金分割數列、因數學家列昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數列”,指的是這樣一個數列:1、1、2、3、5、8、13、21、34、……

程式設計5數列 + +LeetCode50

傳送門:https://leetcode-cn.com/problems/powx-n/ 一、LeetCode 50. Pow(x, n) 1、題目描述 實現 pow(x, n) ,即計算 x 的 n 次冪函式。 2、示例 示例 1: 輸入: 2.00000, 1

C語言實現數列方法和迭代)

兩種方法實現斐波那契數列,遞迴實現起來稍簡單些,思路也清晰些,但執行效率顯然不如迭代 下面是編譯通過的兩種方式實現斐波那契數列的C語言程式碼:/* * fibanacci.c * * Created on: 2015-3-16 * Author: flo

C語言 java 數列

斐波那契數列(Fibonacci sequence),又稱黃金分割數列、 因數學家列昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入, 故又稱為“兔子數列”,指的是這

數列解法

數列:1,1,2,3,5,8,13,21,34,55…….,被稱為斐波那契數列。 斐波那契數列特點:第一、第二個數為1,從第三個數開始,該值等於其前面兩個數之和。 本文主要解決計算第N個斐波那契數的值。 1. 遞迴 /** * 斐波那契數列

劍指offer數列 迴圈 時間 c++

題目:大家都知道斐波那契數列,現在要求輸入一個整數n,請你輸出斐波那契數列的第n項(從0開始,第0項為0)。n<=39 思路:可以用兩種方法實現,這裡遞迴的辦法因為有太多重複的計算會超時(計算n=39,需要4s左右,題目要求1s),遂改用迴圈語句寫(經測試n=39時,完全小於1s),下面的程式碼中也給

C++數列前N項的和與非演算法

定義:斐波那契數列(Fibonacci sequence),又稱黃金分割數列、因數學家列昂納多·斐波那契以兔子繁殖為例子而引入,故又稱為“兔子數列”,指的是這樣一個數列:0、1、1、2、3、5、8、1

歸的應用C語言實現 函數

bsp std 技術 顯示 斐波那契數 cnblogs 分享 pri nbsp #include "stdio.h" int Fbi(int i) /* 斐波那契的遞歸函數 */{ if( i < 2 ) return i == 0 ? 0 : 1;

洛谷P1962 數列矩陣快速冪+數學推導

公式 lin esp inline i++ out cin def res 來提供兩個正確的做法: 斐波那契數列雙倍項的做法(附加證明) 矩陣快速冪 一、雙倍項做法 在偶然之中,在百度中翻到了有關於斐波那契數列的詞條(傳送門),那麽我們可以發現一個這個規律$ \fra

演算法 in python | DP數列vs卡塔蘭數列

1. 斐波那契數列 公式: 應用:爬樓梯 假設你正在爬樓梯。需要 n 階你才能到達樓頂。每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢? class Solution: def climbStairs(self, n):

劍指offer數列求解第N項

public class Solution {    public int Fibonacci(int n) {       //錯誤輸入處理       if

劍指offer數列歸求解第N項

非遞歸 acc 斐波那契 錯誤 bsp fibonacci 更新 off for public class Solution { public int Fibonacci(int n) { //錯誤輸入處理 if(n<0) return

劍指offer第七題數列

題目描述 大家都知道斐波那契數列,現在要求輸入一個整數n,請你輸出斐波那契數列的第n項(從0開始,第0項為0)。 n<=39 剛開始覺得輸入為一個數,然後找到這個數在斐波那契數列中的位置

劍指offer{7-10}數列、跳臺階、變態跳臺階、矩形覆蓋

斐波那契數列、跳臺階、變態跳臺階、矩形覆蓋題目描述C++程式碼跳臺階題目描述C++程式碼變態跳臺階題目描述C++程式碼矩形覆蓋題目描述C++程式碼 注:思路均是動態規劃,用中間陣列dp存放計算值,如果

2018/10/08測試T1SOJ 2175

【題目】 題目描述: 斐波那契數列又稱兔子數列,可以通過以下方式產生:一開始只有一隻兔子,一個月之後這隻兔子每個月會繁殖出另一隻兔子。之後每隻兔子出生後都按照以上規則繁殖。我們把每個月的兔子的數量作為數列中的數就可以得到斐波那契數列。 現在草原上有 nnn 只兔

NOIP模擬+序列+柵欄

T1:      Hash 程式碼(map實現): #include <bits/stdc++.h> #include <tr1/unordered_map> using namespace std; using namespace std:

數論數列求和公式

斐波那契數列: F(n)=F(n-1)+F(n-2); 其中,      F1=1, F2=1. 斐波那契數列求和公式:          Sn  =     2F(n)  +  F(n-1) -  1 Sn  =   F1 + F2 + F3 +……+ 

JZOJ-senior-4627. NOIP2016提高A組模擬7.15數列

Time Limits: 1000 ms Memory Limits: 524288 KB Description Input Output Sample Input 5 10 Sample O

數列取模大數分治演算法

此中測試資料n是整數侷限內。 這個題目,主如果用到很關鍵的一個數學常識,斐波那契數列的求法,可以轉換為矩陣的連乘,矩陣的n此方演算法又可以用分治的演算法。 並且又有理論根據:(n*m)%c=[ (n%c)*(m%c) ]%c ; (n+m)%c=[ (n%c)+(m%c) ]%c ,所以過程中的成果可以