Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int a, b, cnt, x;
- int fib( int n )
- { if (n <= 2) return 1;
- int fold = 1;
- int fold2 = 1;
- int fnew;
- for (int i = 3; i <= n; i++)
- { fnew = ( a*fold ) + ( b*fold2 );
- fold2 = fold;
- fold = fnew;
- }
- return fnew;
- }
- int ifX(){
- for( int i=0; fib(i) < 1000001; i++ )
- if( x == fib(i) ) return i;
- return 0;
- }
- int main (){
- while( cin >> a >> b >> cnt )
- while( cnt-- ){
- cin >> x;
- cout << ifX() << endl;
- }
- return 1;
- }
- /*
- Задача 2а.Обобщена редица на Фибоначи дефинираме по следния начин:
- F(n) = aF(n-1) + bF(n-2)
- за n > 2 при зададени
- F(1) = F(2) = 1.
- Да се напише програма за проверка дали дадено число е елемент от такава редица и ако е елемент,
- да се намери индексът му в редицата.
- Вход:
- От стандартния вход се четат последователно числата a, b <101, броят на числата за проверка, по-малък от 1000001,
- и самите числа - също по-малки от 1000001. Входът съдържа по-малко от 101 примери, всеки задаващ различна обобщена редица на Фибоначи.
- Изход:
- За всяко проверено число на нов ред се извежда индексът му, ако числото е от съответната обобщена редица на Фибоначи или 0 - ако не е.
- Пример:
- 1 1
- 4
- 13 14 9 5
- 1 2
- 1
- 341
- Решение на примера:
- 7
- 0
- 0
- 5
- 10
- */
Advertisement
Add Comment
Please, Sign In to add comment