題目描述
給定乙個正整數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。輸出格式 輸出一行,...