fibonacci數列是這樣定義的: f[0] = 0 f[1] = 1 for each i ≥ 2: f[i] = f[i-1] + f[i-2] 因此,fibonacci數列就形如:0, 1, 1, 2, 3, 5, 8, 13, ...,在fibonacci數列中的數我們稱為fibonacci數。給你乙個n,你想讓其變為乙個fibonacci數,每一步你可以把當前數字x變為x-1或者x+1,現在給你乙個數n求最少需要多少步可以變為fibonacci數。
輸入為乙個正整數n(1 ≤ n ≤ 1,000,000)
輸出乙個最小的步數變為fibonacci數示例1
15
2
解題思路:找到第乙個大於等於n的fibonacci數,然後求這個數與n的絕對值和前乙個數與n的絕對值,哪個值小,則為需要求的最小步數。
**如下:
#include#include#include
using
namespace
std;
int fibonacci(int
n) }
int res=min(n-vec[vec.size()-2],vec[vec.size()-1]-n);
return
res;
}int
main()
牛客網 牛牛的數列
題目描述 牛牛現在有乙個n個數組成的數列,牛牛現在想取乙個連續的子串行,並且這個子串行還必須得滿足 最多隻改變乙個數,就可以使得這個連續的子串行是乙個嚴格上公升的子串行,牛牛想知道這個連續子串行最長的長度是多少。一開始看到這個題,總是被繞進 改變乙個數 中,就想說是不是遍歷陣列,然後每個數都嘗試改變...
牛牛的數列 牛客網
牛牛現在有乙個n個數組成的數列,牛牛現在想取乙個連續的子串行,並且這個子串行還必須得滿足 最多隻改變乙個數,就可以使得這個連續的子串行是乙個嚴格上公升的子串行,牛牛想知道這個連續子串行最長的長度是多少。輸入包括兩行,第一行包括乙個整數n 1 n 10 5 即數列的長度 第二行n個整數a i,表示數列...
牛客網 華為機試 020 牛客網
密碼要求 1.長度超過8位 2.包括大小寫字母.數字.其它符號,以上四種至少三種 3.不能有相同長度超2的子串重複 說明 長度超過2的子串 一組或多組長度超過2的子符串。每組佔一行 如果符合要求輸出 ok,否則輸出ng 示例1 021abc9000 021abc9abc1 021abc9000 02...