Advertisement
Guest User

Untitled

a guest
Dec 11th, 2017
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.27 KB | None | 0 0
  1. #include <iostream>
  2. /*
  3. Tablica t[N][N] jest wype³niona liczbami naturalnymi. W dok³adnie jednym
  4. wierszu istnieje dok³adnie jeden fragment ci¹gu Fibonacciego o d³ugoœci
  5. wiêkszej ni¿ 2, mniejszej ni¿ N. Napisz funkcjê, która znajdzie ten fragment i
  6. zwróci numer wiersza, w którym siê znajduje.
  7. */
  8. using namespace std;
  9. const int N = 3;
  10. int row_of_Fibonacci(int tab[N][N]);
  11. bool isFibonacci(int n);
  12.  
  13. int main()
  14. {
  15. int tab[N][N] = {
  16. {1,2,1},
  17. {5,8,13},
  18. {1,1,1}
  19. };
  20. cout << row_of_Fibonacci(tab);
  21. return 0;
  22. }
  23.  
  24. int row_of_Fibonacci(int tab[N][N])
  25. {
  26. for(int i=0; i < N; i++)
  27. {
  28. int counter = 0;
  29. for(int j=0; j < N; j++)
  30. {
  31. for(int k=j; k < N-1; k++)
  32. {
  33. if(isFibonacci(tab[i][j]) and isFibonacci(tab[i][k+1])){
  34. counter++;
  35. if(counter >= 2){
  36. return i;
  37. }
  38. }
  39. }
  40. }
  41. }
  42. return -1;
  43. }
  44.  
  45. bool isFibonacci(int n)
  46. {
  47. int Fib1 = 0;
  48. int Fib2 = 1;
  49. while(Fib2 <= n){
  50. int Fib3 = Fib1 + Fib2;
  51. Fib1 = Fib2;
  52. Fib2 = Fib3;
  53. if(Fib2 == n)
  54. return true;
  55. }
  56. return false;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement