bool Recursive(string s, string p, int i, int j){
	//	cout << i << " "<<j << endl;
		if (i == s.size() && j == p.size())return true;
		else if ((i == s.size() && p[j] != '*')|| j == p.size())return false;
		if (s[i] == p[j] || p[j] == '?')return Recursive(s, p, i + 1, j + 1);
		else if(p[j] == '*'){
			if (i < s.size() && Recursive(s, p, i + 1, j))return true;
			while (j < p.size() && p[j] == '*')j++;
			return Recursive(s, p, i, j);
		}
		else return false;
	}
示例#2
0
int Recursive(int *memoization, int n){
	if (memoization[n] != -1){
		return memoization[n];
	}

	if (n == 0 || n == 1){
		memoization[n] = n;
		return n;
	}
	
	memoization[n] =  Recursive(memoization, n - 1) + Recursive(memoization, n - 2);
	return memoization[n];
}
示例#3
0
void Recursive(const uint8_t *Data, size_t Size, int Depth) {
  if (Depth > 1000) abort();
  if (!Size) return;
  if (*Data == ('A' + Depth % 10))
    Recursive(Data + 1, Size - 1, Depth + 1);
  Sink++;
}
示例#4
0
void Recursive(int num)
{
	if(num <= 0)
		return;
	printf("Recursive call! %d \n", num);
	Recursive(num - 1);
}
示例#5
0
// Euclid's Algorithm for Greatest Common Divisor (Recursive)
// Please see reference in lab report (this is the one I used for recursive)
long
GCD::Recursive( long m, long n )
{
	if(( m % n ) == 0 )
		return n;
	else
		return Recursive( n, m % n );
}
int _tmain(int argc, _TCHAR* argv[])
{
	int n;
	scanf_s("%d", &n);
	printf_s("%d\n", Recursive(n));
	getchar(); 
	return 0;
}
示例#7
0
void Recursive(int num)
{
    if (num == 5)
    {
        int duration_us = rand() % 8000000;
        printf("going to sleep for %d us\n", duration_us);
        usleep(duration_us);
        return;
    }
    Recursive(num + 1);
}
示例#8
0
int _tmain(int argc, _TCHAR* argv[])
{
	int n;
	
	//scanf_s("%d", &n);
	n = 6;
	int * memoization = new int[ 100 ];
	memset(memoization, -1, sizeof(int) * 100);
	printf_s("%d\n", Recursive(memoization, n));
	delete[] memoization;
	getchar();
	return 0;
}
示例#9
0
void __fastcall TFrmDemand::ButtonrefreshClick(TObject *Sender)
{
	ADOQuery_insert->SQL->Text = (AnsiString)"select * from Demand where project_id=1 order by id_dem";
	ADOQuery_insert->Open();

	 TADOQuery * ado = new TADOQuery(NULL);
	 ado->Connection = ADOConnection1;

		ado->SQL->Text = (AnsiString)"select * from Demand where project_id=1 order by id_dem";
		ado->Open();


	//TTreeNode* node = TreeView_doc_Struct->Items->AddObject(NULL, this->node_Name->Text, (void*)reqinfo);
	//node->Selected = true;

	for(ADOQuery_insert->First();!ADOQuery_insert->Eof;ADOQuery_insert->Next())
	{

		if(ADOQuery_insert->FieldByName("id_par")->Value.IsNull())//==0
		{
		Demand *reqinfo = new Demand;
		//записываем данные из бд в структуры
		reqinfo->name_dem = ADOQuery_insert->FieldByName("name_dem")->AsAnsiString.c_str();
		reqinfo->text_dem = ADOQuery_insert->FieldByName("text_dem")->AsAnsiString.c_str();
		reqinfo->type_dem = ADOQuery_insert->FieldByName("type_dem")->AsAnsiString.c_str();
		reqinfo->num_dem = ADOQuery_insert->FieldByName("num_dem")->AsAnsiString.c_str();
		reqinfo->code_dem = ADOQuery_insert->FieldByName("code_dem")->AsAnsiString.c_str();
		reqinfo->id_dem = ADOQuery_insert->FieldByName("id_dem")->Value;
		top_level.push_back(reqinfo);



		Recursive(reqinfo, ado);
		}
		/*reqinfo->name_dem = string(AnsiString(this->node_Name->Text).c_str());
		reqinfo->num_par = string(AnsiString("0").c_str());

		this->TreeView_doc_Struct->Items->Add(ADOQuery_insert->FieldValues["project_name"]);
		*/
	}
	for(int i = 0;i<top_level.size();i++)
	{
		TTreeNode* node = TreeView_doc_Struct->Items->AddObject(NULL, top_level[i]->name_dem.c_str(), (void*)(top_level[i]));
		RecursiveFChilds(top_level[i], node);
	}

}
示例#10
0
文件: hw6.c 项目: bikoby/myCSWork
int main(int argc, char* argv[]) {
   long n, i, j, r;

   if (argc != 2) {
      fprintf(stderr, "usage: %s <n>\n", argv[0]);
      exit(0);
   }
   n = strtol(argv[1], NULL, 10);

   for (i = 0; i < n; i++) {
      for (j = 0; j < n; j++) {
         r = Recursive(i, j);
         printf("%6ld ", r);
      }
      printf("\n");
   }

   return 0;
}  /* main */
示例#11
0
void Recursive(Demand* parent, TADOQuery* sql)
{
	sql->First();
	while(!sql->Eof) {
		if(parent->id_dem == sql->FieldByName("id_par")->Value)
		{
			Demand *reqinfo = new Demand;


			reqinfo->name_dem = sql->FieldByName("name_dem")->AsAnsiString.c_str();
			reqinfo->text_dem = sql->FieldByName("text_dem")->AsAnsiString.c_str();
			reqinfo->type_dem = sql->FieldByName("type_dem")->AsAnsiString.c_str();
			reqinfo->num_dem = sql->FieldByName("num_dem")->AsAnsiString.c_str();
			reqinfo->code_dem = sql->FieldByName("code_dem")->AsAnsiString.c_str();
			reqinfo->id_dem = sql->FieldByName("id_dem")->Value;

			parent->childs.push_back(reqinfo);
			Recursive(reqinfo,sql);

		}
		sql->Next();
	  }
}
示例#12
0
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
  Recursive(Data, Size, 0);
  return 0;
}
	bool isMatch(string s, string p) {
		return Recursive(s, p, 0, 0);
	}
示例#14
0
int main()
{
	srand(time(NULL));
    for (;;)
        Recursive(0);
}
示例#15
0
void InvaderDetectOperation::operate( const std::vector<ImageBufferPtr>& inputList, const std::vector<double>&, ImageBufferPtr output ) {
	assert(inputList.size() == 2);
	min.clear();
	max.clear();

	CpuImage input = readBuffer(inputList[0]);
	Matrix<int> clusters( input.height(), input.width() );

	for(unsigned int y = 0; y < input.height(); y++)
	for(unsigned int x = 0; x < input.width(); x++) {
		clusters(y,x) = -1;
	}

	int lastCluster = 0;
	for(unsigned int y = 0; y < input.height(); y++ )
	for(unsigned int x = 0; x < input.width(); x++ ) {
		if( clusters(y,x).get() != -1 )
			continue;
		if( ! input(y,x).get().r ){
			clusters(y,x) = 0;
			continue;
		}
		clusters(y,x) = ++lastCluster;

		std::queue<Recursive> recurse;
		recurse.push(Recursive(y,x));

		while( !recurse.empty() ) {
			Recursive recursive = recurse.front();
			recurse.pop();
			int ry = recursive.ry;
			int rx = recursive.rx;

			for( int line = -1; line <= 1; line++){
			for( int column = -1; column <= 1; column++){
				if ( clusters(ry,rx).neighbour(line,column).get() == -1 && input(ry,rx).neighbour(line,column).get().r != 0 ){
					clusters(ry, rx).neighbour(line, column) = lastCluster;
					recurse.push( Recursive(ry+line, rx+column) );
				}
			}
			}	
		};
	}

	CpuImage backImage = readBuffer(inputList[1]);
	for( unsigned int y = 0; y < input.height(); y++)
	for( unsigned int x = 0; x < input.width(); x++) {
		maximize( backImage(y,x) , clusters(y,x).get() );
		minimize( backImage(y,x) , clusters(y,x).get() );
	}

	{
		auto minI = min.begin();
		auto maxI = max.begin();
		for( ; minI != min.end(); ++minI,++maxI) {
			if( minI->first == 0 )
				continue;

			int clusterWidth = maxI->second.first-minI->second.first;
			int clusterHeight = maxI->second.second-minI->second.second;
			int area = clusterHeight*clusterWidth;
			if( area < 500 )
				continue;
			double ratio = double(clusterHeight)/double(clusterWidth);
		//	std::cout << minI->first << ": (" << clusterWidth << "," << clusterHeight << "), ratio:" << ratio;
		//	std::cout << ", area:" << area << std::endl;

			int color = ratio > 1.2 ? 3 : 2;
			Point line = minI->second;
			for( ; line.second <= maxI->second.second; ++line.second) {
				colorize( backImage(line.second,line.first), color );
			}
			for( ; line.first <= maxI->second.first; ++line.first) {
				colorize( backImage(line.second,line.first), color );
			}
			for( ; line.second >= minI->second.second; --line.second) {
				colorize( backImage(line.second,line.first), color );
			}
			for( ; line.first >= minI->second.first; --line.first) {
				colorize( backImage(line.second,line.first), color );
			}
		}
	}

	writeBuffer(backImage,output);
}
示例#16
0
文件: gcov-15.c 项目: 0day-ci/gcc
int main ()
{
  Recursive (); /* count(1) */
  return 0;
}
示例#17
0
int Recursive(int n){
	if (n == 0 || n == 1){
		return n;
	}
	return Recursive(n - 1) + Recursive(n - 2);
}
示例#18
0
int main(void)
{
	Recursive(3);
	return 0;
}