計算斐波那契數最小差值 C 解法

2021-09-25 08:06:29 字數 807 閱讀 6566

題目描述

給定乙個正整數n,計算n與斐波那契數的最小差值(絕對值)

說明:

斐波那契數定義:

從0,1開始後面的數值為前面兩者之和, 即第三個數為第一和第二個數之和

形如:0,1,1,2,3,5,8,13,21。。。。 其中3為1與2的和,5為2與3的和,8為3與5的和等等

要計算的數值案例:

輸入15,與斐波那契數相減,與13相減的絕對值是2,與21相減的絕對值是6,與眾多斐波那契數相減的最小差值為2

因此輸入15,輸出2

輸入描述:

輸入任意正整數

輸出描述:

陣列正整數

示例1輸入

15輸出

2說明

15與「0,1,1,2,3,5,8,13,21。。。。」當中的13差值的絕對值最小,與21的差值為6,與8的差值為7

#include #include #include using namespace std;

void main()

int b1 = n - temp, b2 = a1 - n;

if (b1 > b2)cout << b2 << endl;

else cout << b1 << endl;

}

思路:當輸入的n大於斐波那契數列時,停止計算斐波那契數列,之後計算當前位和前一位哪個與n的差值最小,輸出結果。

斐波那契數列解法

方法一 常規解法 def demo month 定義變數 a,b分別表示一月和二月的數目 a 0 a為第乙個數值 b 1 b為第二個數值 定義乙個計數器 i 0 while i month 列印每次的數值 print a a,b b,a b i 1 nume demo 3 方法二 函式的遞迴 def...

斐波那契數列解法

1 概念 在數學上,費波那契數列是以遞迴的方法來定義 f0 0 f1 1 fn fn 1 fn 2 n 2 用文字來說,就是費波那契數列由0和1開始,之後的費波那契係數就是由之前的兩數相加而得出。首幾個費波那契係數是 0,1,1,2,3,5,8,13,21,34,55,89,144,233 oeis...

斐波那契數

入門訓練 fibonacci數列 時間限制 1.0s 記憶體限制 256.0mb 問題描述 fibonacci數列的遞推公式為 fn fn 1 fn 2,其中f1 f2 1。當n比較大時,fn也非常大,現在我們想知道,fn除以10007的餘數是多少。輸入格式 輸入包含乙個整數n。輸出格式 輸出一行,...