Программа должна получить цифры в текстовый файл, и вывести те числа, которые являются числами Фибоначчи. Перед последним, как раз проблемным ифом, стоят два цикла. Может показаться что они лишние, но один отвечает за перечень самих чисел из файла, второй же, отвечает за сравнение с каждым числом фибоначчи, (в данном случаи до тридцатого) Опять же, проблема в условии цикла "while(fin.get(Prov))", когда Prov был типа char ошибок не было, но работал не правильно, символ цифры не может ровняться цифре, по логике VS. Сейчас тип Prov, заменен на int. !!!!!!!! Вот эта формула описанная в комментарии.
#include <iostream>
using namespace std;
int Fib(int i)
{
int value = 0;
if(i < 1) return 0;
if(i == 1) return 1;
return Fib(i-1) + Fib(i - 2);
}
int main()
{
int i = 0;
while(i < 47)
{
cout << Fib(i) << endl;
i++;
}
return 0;
}
Затем идёт код... (уже не так важен код как эта формула)
Проблема в том, что бы эту Функцию воплотить в цикле, что бы было возможно проверить каждое число в файле. Мало кому это понадобится, хотя как видно мне пригодилось бы.
#include "pch.h"
#include "windows.h"
#include "string.h"
#include <iostream>
#include "fstream"
#include "locale.h"
using namespace std;
int main()
{
setlocale(0, "");
string chis = "MyProgFile.txt";
ofstream fout;
fout.open(chis, ofstream::app);
if (!fout.is_open())
{
cout << "ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR";
}
else
{
int i,j, chislo,Rozmer;
cout << "Укажите количество чисел - ";
cin >> Rozmer;
cout << "Заполните текстовый файл"<<endl;
for (i = 0;i < Rozmer;i++)
{
cin >> chislo;
fout << chislo<<endl;
}
}
ifstream fin;
fin.open(chis);
int x0 = 0, x1 = 1,j=0;
if(!fin.is_open())
{
cout << "ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR";
}
else
{
cout << "Файл открыт"<<endl;
int Prov;
int MF[] = { 0,1 };
while(fin.get(Prov))
{
while (j>30)
{
if (Prov == (MF[x0] + MF[x1]))
{
x0++;
x1++;
cout << Prov;
}
else
cout << "ERROR ERROR ERROR";
}
}
}
fin.close();
return 0;
}
Если вы намереваетесь получать число именно из одной цифры - то таки пусть Prov
будет char
, а после чтения - добавьте
Prov -= '0';
Но если это должно быть многозначное число, то лучше работать как
int Prov;
while (fin >> Prov)...
Виртуальный выделенный сервер (VDS) становится отличным выбором
Верстаю тренировочный макет(на названия классов и id забил)Не могу решить проблему, когда при наведении все скачет, в том числе и фон
Имеется следующий интерфейс: