Arka fon
Fibonacci sayısının ne olduğunu biliyorsunuz . Bazılarınız, Zeckendorf Teoremine göre, tüm pozitif tamsayıların bir veya daha fazla farklı Fibonacci sayısının toplamı olarak temsil edilebileceğini biliyor olabilir . Bir tamsayının en iyi Zeckendorf Temsilindeki terim sayısı n
kendisinin bir Fibonacci numarasıysa, n
"gizlice" Fibonacci diyeceğiz .
Örneğin:
139 = 89 + 34 + 13 + 3
This is a total of 4 integers. Since 4 is not a Fibonacci number, 139 is not secretly Fibonacci
140 = 89 + 34 + 13 + 3 + 1
This is a total of 5 integers. Since 5 is a Fibonacci number, 140 is secretly Fibonacci
notlar
- Optimal Zeckendorf Temsili, açgözlü bir algoritma kullanarak bulunabilir. Basitçe en büyük Fibonacci numarasını <= n alın ve 0'a ulaşana kadar n'den çıkarın
- Tüm Fibonacci sayıları, 1 Fibonacci sayısının (kendisinin) toplamı olarak gösterilebilir. 1 bir Fibonacci sayısı olduğundan, tüm Fibonacci sayıları da gizlice Fibonacci'dir.
Meydan okuma
Buradaki zorluk, bir tamsayı alan ve bu tamsayının gizlice Fibonacci olup olmadığını döndüren bir program veya işlev yazmaktır.
Giriş
Herhangi bir makul formatta girdi alabilirsiniz. Girişin tek bir pozitif tamsayı olacağını varsayabilirsiniz.
Çıktı
Girdinin gizlice Fibonacci olup olmadığına ilişkin iki belirgin sonuçtan birini çıktılayın. Örnekler arasında True
/ False
, 1
/ 0
, vb.
puanlama
Bu kod-golf , bayt cinsinden en kısa cevap! Standart boşluklar yasaktır.
Test Kılıfları
Truthy (secretly Fibonacci)
1
2
4
50
140
300099
Falsey (NOT secretly Fibonacci)
33
53
54
139
118808