#include <fstream>
#include <cstring>
#include <string>
#include <iostream>
using namespace std;
int getmatch( int index, string seq )
{
index--;
string fib[ 46 ] = { "A", "B" };
for( int i = 2; i < index + 1; i++ ) {
fib[ i ] = fib[ i - 1 ] + fib[ i - 2 ];
}
int cnt = 0, offset = strlen( seq.c_str() );
char *p = const_cast<char*>(fib[ index ].c_str());
while( p = strstr( p, seq.c_str() ) ) {
p = p + offset - 1;
cnt++;
}
return cnt;
}
int main( void )
{
ofstream of_file("output.txt");
ifstream if_file("input.txt");
string seq;
int index;
//if_file>>index>>seq;
//of_file<<getmatch( index, seq );
//cin>>index>>seq;
index = 10;
seq = "BBABAB";
cout<<' '<<getmatch( index , seq )<<endl;
if_file.close();
of_file.close();
return std::cin.get();
}
происходит вылет при index = 45
Задача считает количество вхождений подстроки в строку фибоначчи