Advertisement
Guest User

Untitled

a guest
Jan 18th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.41 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. using namespace std;
  4.  
  5. int fib(int n) {
  6.     if (n < 2)
  7.         return n;
  8.     else
  9.         return fib(n - 1) + fib(n - 2);
  10. }
  11.  
  12. void outputk(fstream &f, int k)
  13. {
  14.     int t;
  15.     cout << "Number ending " << k << ": ";
  16.     while (f.peek() != EOF)
  17.     {
  18.         f.read((char*)&t, sizeof(t));
  19.         if (t % 10 == k)
  20.             cout << t << ' ';
  21.     }
  22.     cout << endl;
  23. }
  24.  
  25. void outputm(fstream &f, int m)
  26. {
  27.     int t;
  28.     f.seekg(0, ios::beg);
  29.     f.read((char*)&t, sizeof(t));
  30.     cout << "First number: " << t << endl;
  31.  
  32.     f.seekg(sizeof(int)*(m - 1), ios::beg);
  33.     f.read((char*)&t, sizeof(t));
  34.     cout << "Number # " << m << ": " << t << endl;
  35.  
  36.     f.seekg(sizeof(int)*(-1), ios::end);
  37.     f.read((char*)&t, sizeof(t));
  38.     cout << "Last number: " << t << endl;
  39. }
  40.  
  41. int main()
  42. {
  43.     int n, k, m, t;
  44.     cin >> n >> k >> m;
  45.  
  46.     //Создадим или очистим файл
  47.     ofstream fout("a.dat");
  48.     fout.close();
  49.  
  50.     fstream f("a.dat", ios::in | ios::out | ios::binary); //Открыли файл
  51.  
  52.     for (int i = 1; i <= n; i++)
  53.     {
  54.         //Генерируем и записываем числа фибаначи
  55.         t = fib(i);
  56.         f.write((char*)&t, sizeof(int));
  57.     }
  58.  
  59.     for (int i = 0; i < n; i++)
  60.     {
  61.         //Генерируем и записываем числа фибаначи
  62.         f.seekg(i * sizeof(int), ios::beg);
  63.         f.read((char*)&t, sizeof(int));
  64.         cout << t << endl;
  65.     }
  66.  
  67.     outputk(f, k);
  68.     outputm(f, m);
  69.  
  70.     f.close();
  71.     return 0;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement