斐波那契資料眾所周知如下:
現在給出乙個整數n,請找出n是否可以表示為幾個斐波那契數的總和,這樣總和不包含任何兩個連續的斐波那契數。
輸入 多個測試用例,第一行是乙個整數t(t <= 10000),表示測試用例的數量。
每個測試用例都是乙個整數n(1 <= n <= 109)的行。
產量 每箱一行。
如果答案不存在,則輸出「-1」(不含引號)。
否則,您的答案應格式化為「n = f1 + f2 + ... + fn」。
n表示給定的數字,f1,f2,...,fn表示斐波那契數字,按公升序排列。
如果有多種方式,您可以輸出它們中的任何一種。
示例輸入
4五6示例輸出7100
5 = 5這道題的題意也很簡單,就是給你乙個數,讓你輸出這個數字是用那些斐波那契數的和所組成的,n的範圍到10^9,也就是第45個斐波那契數左右吧!6 = 1 + 5
7 = 2 + 5
100 = 3 + 8 + 89
打表求得前45個斐波那契數,然後,然後不難發現這些數字的組合有乙個規律,比如100,比他小的第乙個斐波那契數是89,然後100-89=11,比11小的第乙個斐波那契數是8,就這樣,總會找出一些斐波那契數的和與原數相等,儲存在陣列中,輸出~
#include
#include
#include
#include
using namespace std;
int a[46]= ;
int b[46];
void init()
int find(int n)
int main()
printf("%d=%d",n,b[--j]);
for(--j; j>=0; j--)
printf("+%d",b[j]);
printf("\n");}}
求乙個數約數的個數
求約數的個數 計算乙個整數的約數個數 輸入格式 輸入乙個整數 輸出格式 輸出一行,為輸入整數的約數的個數 樣例輸入 10 樣例輸出 4ac import math number int raw input count 0 sqrt float math.sqrt number if number s...
找乙個數的因子個數,因子和
1.所有因子個數 如果乙個數是因數,就不斷除這個數,儲存這個因子次方的數 temp 運用所有因子個數計算公式 見上圖 儲存因子個數的 ans不斷乘 temp 1 注意 當最後,在 x 不斷除因數得到的值有兩種情況 x 1,這說明 x 沒有其他因子了。x 1,這時 x 為其乙個素數因子 且這個因子大於...
求乙個數中1的個數
碰到遇到乙個有趣的題,求乙個數二進位制的表示中1的個數,該題有兩種解法,一種是使用短除法將該數直接轉化為二進位制數,另一種比較巧妙的演算法是使用與運算,原理如下圖所示 依照此種思入有如下演算法 int numberof1 solution3 int i return count 依照短處法的思路 有...