Advertisement
x2311

Untitled

Jun 7th, 2022
816
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.20 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <vector>
  4. #include <string>
  5.  
  6. using namespace std;
  7. #define INPUT "..\\tess.txt"
  8. #define OUTPUT "output.txt"
  9.  
  10. /**
  11.  * реалізував числа Фібоначчі. якщо сума попередніх 2 == число то вилучають його
  12.  * Перші 2 числа вилучаємо
  13.  *
  14.  * Маємо -> 1 2 3 12 4 16
  15.  * вилучаємо Третій елемент 3 то вилучаємо так як перший + другий елемент == 3
  16.  *                  Шостий величаемо так як 12+ 4 == 16
  17.  *          Відповідь маємо ряд: 12 4
  18.  * @return 0
  19.  */
  20. /**
  21.  * может пригодится если нужно создать бинарный файл
  22.  */
  23. void write_bin_file(){
  24.     int num[8] {
  25.             1 , 123, 124, 34, 36 ,70, 78, 453
  26.     };
  27.     ofstream file;
  28.     file.open("numbers.dat", ios::binary | ios::out);
  29.     for (int i = 0; i < 8; i++) {
  30.         file.write((char *)&num[i], sizeof(int));
  31.     }
  32.     file.close();
  33. }
  34. /**
  35.  *  читаем бинарный файл
  36.  * @param numbers все цифры
  37.  * @param path путь
  38.  */
  39. void read_binary_file(vector<int> &numbers, string path){
  40.     ifstream file;
  41.     file.open(path, ios::binary | ios::in);
  42.     int num;
  43.     while (!file.eof()) {
  44.         file.read((char *)&num, sizeof(int));
  45.         numbers.push_back(num);
  46.     }
  47.     file.close();
  48. }
  49. /**
  50.  * удаляем числа фибоначи
  51.  * @param numbers все цифры
  52.  * @param path  путь
  53.  */
  54. void remove_num_fibonacci(vector<int> numbers, string path){
  55.     ofstream file(path, ios::binary);
  56.     file.write((char *)&numbers[0], sizeof(int));
  57.     file.write((char *)&numbers[1], sizeof(int));
  58.     if (numbers.size() > 2) {
  59.         for (int i = 2; i < int(numbers.size()); i++) {
  60.             if (numbers[i - 2] + numbers[i - 1] != numbers[i]) {
  61.                 file.write((char *)&numbers[i], sizeof(int));
  62.             }
  63.         }
  64.     }
  65.     file.close();
  66. }
  67.  
  68. int main() {
  69.     //write_bin_file();
  70.     vector<int> numbers;
  71.     read_binary_file(numbers, "numbers.dat");
  72.     remove_num_fibonacci(numbers, "not_fibonacci.dat");
  73.     return 0;
  74. }
  75.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement