Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <vector>
- #include <string>
- using namespace std;
- #define INPUT "..\\tess.txt"
- #define OUTPUT "output.txt"
- /**
- * реалізував числа Фібоначчі. якщо сума попередніх 2 == число то вилучають його
- * Перші 2 числа вилучаємо
- *
- * Маємо -> 1 2 3 12 4 16
- * вилучаємо Третій елемент 3 то вилучаємо так як перший + другий елемент == 3
- * Шостий величаемо так як 12+ 4 == 16
- * Відповідь маємо ряд: 12 4
- * @return 0
- */
- /**
- * может пригодится если нужно создать бинарный файл
- */
- void write_bin_file(){
- int num[8] {
- 1 , 123, 124, 34, 36 ,70, 78, 453
- };
- ofstream file;
- file.open("numbers.dat", ios::binary | ios::out);
- for (int i = 0; i < 8; i++) {
- file.write((char *)&num[i], sizeof(int));
- }
- file.close();
- }
- /**
- * читаем бинарный файл
- * @param numbers все цифры
- * @param path путь
- */
- void read_binary_file(vector<int> &numbers, string path){
- ifstream file;
- file.open(path, ios::binary | ios::in);
- int num;
- while (!file.eof()) {
- file.read((char *)&num, sizeof(int));
- numbers.push_back(num);
- }
- file.close();
- }
- /**
- * удаляем числа фибоначи
- * @param numbers все цифры
- * @param path путь
- */
- void remove_num_fibonacci(vector<int> numbers, string path){
- ofstream file(path, ios::binary);
- file.write((char *)&numbers[0], sizeof(int));
- file.write((char *)&numbers[1], sizeof(int));
- if (numbers.size() > 2) {
- for (int i = 2; i < int(numbers.size()); i++) {
- if (numbers[i - 2] + numbers[i - 1] != numbers[i]) {
- file.write((char *)&numbers[i], sizeof(int));
- }
- }
- }
- file.close();
- }
- int main() {
- //write_bin_file();
- vector<int> numbers;
- read_binary_file(numbers, "numbers.dat");
- remove_num_fibonacci(numbers, "not_fibonacci.dat");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement