Soluție HackerRank pentru Is Fibo, subdomeniul Fundamentals, în Python 3. Include cerința formatată, exemple, explicația pașilor și cod sursă.
- Problemă: Is Fibo
- Domeniu: Fundamentals
- Limbaj: Python 3
Challenge: Is Fibo
Subdomeniu: Fundamentals (fundamentals)
Scor cont: 20.0 / 20
Submission status: Accepted
Submission score: 1.0
Submission ID: 464721252
Limbaj: python3
Link challenge: https://www.hackerrank.com/challenges/is-fibo/problem
Cerință
You are given an integer, N. Write a program to determine if N is an element of the _Fibonacci sequence_.
The first few elements of the Fibonacci sequence are 0,1,1,2,3,5,8,13, ·s. A Fibonacci sequence is one where every element is a sum of the previous two elements in the sequence. The first two elements are 0 and 1.
Formally:
begin{align*}
fib_0 &= 0
fib_1 &= 1
vdots
fib_n &= fib_n-1 + fib_n-2 forall n > 1
end{align*}
Function Description
Complete the *isFibo* function in the editor below.
*isFibo* has the following parameters:
- *int n:* the number to check
Returns
- *string:* either `IsFibo` or `IsNotFibo`
Input Format
The first line contains t, number of test cases.
t lines follow. Each line contains an integer n.
Constraints
1 ≤ t ≤ 10^5
1 ≤ n ≤ 10^10
Sample Input
<pre>
STDIN Function
----- --------
3 t = 3
5 n = 5
7 n = 7
8 n = 8
</pre>
Sample Output
IsFibo
IsNotFibo
IsFibo
Explanation
5 is a Fibonacci number given by text{fib}_5 = 3 + 2
7 is not a Fibonacci number
8 is a Fibonacci number given by text{fib}_6 = 5 + 3
Time Limit
The time limit for this challenge is given [here](https://www.hackerrank.com/environment).
Cod sursă
#!/bin/python3
import os
import sys
# Complete the solve function below.
def solve(n):
if n in q:
return "IsFibo"
else:
return "IsNotFibo"
q=[0]
a=0
b=1
for i in range(0,10000):
c=a+b
a=b
b=c
q.append(c)
if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')
t = int(input())
for t_itr in range(t):
n = int(input())
result = solve(n)
fptr.write(result + '\n')
fptr.close()
