Caneq

lb2.6.8

Oct 29th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.38 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. //    5    10   15   20   25   30   35   40   45   50   55
  6. //112358132134558914423337761098715972584418167651094617711
  7. int main()
  8. {
  9.     cout << "    5    10   15   20   25   30   35   40   45   50   55" << endl;
  10.     cout << "112358132134558914423337761098715972584418167651094617711" << endl;
  11.     int k;
  12.     cin >> k;
  13.     int previousn = 0; //предыдущее число фиббоначи
  14.     int n = 1;         //текущее число фиббоначи
  15.     int i = 0;         //порядковый номер последней цифры
  16.     while (true) {
  17.         int temp = n;
  18.         int numberOfDigits = 0; //Количество цифр в текущем числе фиббоначи
  19.         while (temp > 0) {      //Получение количества цифр в текущем числе фиббоначи
  20.             temp /= 10;
  21.             numberOfDigits++;
  22.         }
  23.         i += numberOfDigits;   //Обновление порядкового номера последней цифры
  24.         if (i >= k) { //если i >= k, то мы прошли нужную цифру или на ней
  25.             n /= static_cast<int>(pow(10, i - k)); //отбросить i - k цифр с конца
  26.             cout << n % 10 << endl;
  27.             return 0;
  28.         }
  29.         temp = n;
  30.         n += previousn;      //Получение следующего числа фиббоначи
  31.         previousn = temp;
  32.     }
  33. }
Add Comment
Please, Sign In to add comment