先上code:
```
# 948 Fibonaccimal Base
a = [1, 2] #建立數列的列表
while a[-1] < 100000000:
a.append(a[-1] + a[-2])
N = int(input())
for case in range(N):
num = int(input())
print(f"{num} = ", end='')
found = 0 # 設定起始點
for f in a[::-1]: #將序列反轉過來
if num >= f: #當num>序列裡面的數字時,即為最靠近num的費伯那契數
num -= f
found = 1
print(1, end='')
elif found: print(0, end='')
print(" (fib)")
```
要點:
1. 先建好費伯那契數列的列表
2. 將整個陣列反轉過來,從最靠近輸出的部分開始一定對--原因很簡單,因為你找到的那個一定等於後兩個之和,又題目要求不能有連續的費伯那契數,那就直接取最近的就好
3. 將輸入的數字扣掉那個數,如果可以扣,print(1),之後,如果不能扣除,記得print(0)