⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 algorithum.h

📁 一款棋牌24点游戏的源代码 对初学者有用的
💻 H
字号:






int  CMyView::Algorithum()
{


	int a[4];//用来表示四个数的标号;
	int b[3];//用来表示三个符号;
	double ra[4];
	char istring[20];

	int i=0;
	int tag=0;
	int count=0;
	int p=0;
	/////////////////////////////////////////////////////////////
	for(a[0]=0;a[0]<4;a[0]++)
	{
		for(a[1]=0;a[1]<4;a[1]++)
		{
			if(a[0]==a[1])
				continue;
			for(a[2]=0;a[2]<4;a[2]++)
			{
				if(a[2]==a[0]||a[2]==a[1])
					continue;
				for(a[3]=0;a[3]<4;a[3]++)
				{
					if(a[3]==a[2]||a[3]==a[1]||a[3]==a[0])
						continue;
					for(i=0;i<4;i++)
					{	
						ra[i]=poke[a[i]]+0.0;
					
					}
				
				for(b[0]=0;b[0]<4;b[0]++)
						for(b[1]=0;b[1]<4;b[1]++)
							for(b[2]=0;b[2]<4;b[2]++)
							{	
									for(i=0;i<4;i++)
									{	
										ra[i]=poke[a[i]]+0.0;
									}
////////////////////////////////////////////  (((a0b0a1)b1a2)b2a3)
								tag=0;
								for(i=0;i<3;i++)
								{
									switch(b[i])
									{
									case 0: ra[i+1]=ra[i]+ra[i+1];break;
									case 1: ra[i+1]=ra[i]-ra[i+1];break;
									case 2: ra[i+1]=ra[i]*ra[i+1];break;
									case 3:
										
									if(ra[i+1]>0.0001||ra[i+1]<-0.0001)
										ra[i+1]=ra[i]/ra[i+1];
						    		else tag=1;
										break;
									}
								  if(tag==1)
										break;
									//解
							 		
								  if(!tag&&i==2&&(ra[3]-24.0)<0.0001&&(ra[3]-24.0)>-0.0001)
							
									{	
										istring[p++]='(';
										istring[p++]='(';
										if(poke[a[0]]/10==0)
										{ 
											istring[p++]=48+poke[a[0]];
										}
										else
										{	
											istring[p++]=poke[a[0]]/10+48;
											istring[p++]=poke[a[0]]%10+48;
										}

										switch(b[0])
												{
												case 0: istring[p++]='+';break;
												case 1: istring[p++]='-';break;
												case 2: istring[p++]='*';break;
												case 3: istring[p++]='/';break;
												}
										if(poke[a[1]]/10==0)
										{ 
											istring[p++]=48+poke[a[1]];
										}
										else
										{	
											istring[p++]=poke[a[1]]/10+48;
											istring[p++]=poke[a[1]]%10+48;
										}
										
										istring[p++]=')';
									
										switch(b[1])
												{
												case 0: istring[p++]='+';break;
												case 1: istring[p++]='-';break;
												case 2: istring[p++]='*';break;
												case 3: istring[p++]='/';break;
												}
										if(poke[a[2]]/10==0)
										{ 
											istring[p++]=48+poke[a[2]];
										}
										else
										{	
											istring[p++]=poke[a[2]]/10+48;
											istring[p++]=poke[a[2]]%10+48;
										}
										istring[p++]=')';
										
										switch(b[2])
												{
												case 0: istring[p++]='+';break;
												case 1: istring[p++]='-';break;
												case 2: istring[p++]='*';break;
												case 3: istring[p++]='/'; break;
												}
										if(poke[a[3]]/10==0)
										{ 
											istring[p++]=48+poke[a[3]];
										}
										else
										{	
											istring[p++]=poke[a[3]]/10+48;
											istring[p++]=poke[a[3]]%10+48;
										}

										istring[p++]='=';
										istring[p++]='2';
										istring[p++]='4';
										istring[p]=NULL;
										ShowFonts(istring);
										count++;
										p=0;
									}
							}	
								
/////////////////////// (a0b0a1)b1(a2b2a3)////////////////////////////								
								tag=0;
								for(i=0;i<4;i++)
									{	
										ra[i]=poke[a[i]];
									}
									
								switch(b[0])
									{
									case 0: ra[1]=ra[0]+ra[1];break;
									case 1: ra[1]=ra[0]-ra[1];break;
									case 2: ra[1]=ra[0]*ra[1];break;
									case 3:
										
										if(ra[1]!=0)
										ra[1]=(ra[0]+0.0)/ra[1];
						    			else tag=1;
										break;
									}
									
									switch(b[2])
									{
									case 0: ra[2]=ra[2]+ra[3];break;
									case 1: ra[2]=ra[2]-ra[3];break;
									case 2: ra[2]=ra[2]*ra[3];break;
									case 3:
										
									if(ra[3]!=0)
										ra[2]=(ra[2]+0.0)/ra[3];
						    		else tag=1;
										break;
									}
									switch(b[1])
									{
									case 0: ra[3]=ra[1]+ra[2];break;
									case 1: ra[3]=ra[1]-ra[2];break;
									case 2: ra[3]=ra[1]*ra[2];break;
									case 3:
										
									if(ra[2]!=0)
										ra[3]=(ra[1]+0.0)/ra[2];
						    		else tag=1;
										break;
									}
									//解
									if(!tag&&(ra[3]-24.0)<0.0001&&(ra[3]-24.0)>-0.0001)
									{	
										
										istring[p++]='(';
										
										if(poke[a[0]]/10==0)
										{ 
											istring[p++]=48+poke[a[0]];
										}
										else
										{	
											istring[p++]=poke[a[0]]/10+48;
											istring[p++]=poke[a[0]]%10+48;
										}

										switch(b[0])
												{
												case 0: istring[p++]='+';break;
												case 1: istring[p++]='-';break;
												case 2: istring[p++]='*';break;
												case 3: istring[p++]='/';break;
												}
										if(poke[a[1]]/10==0)
										{ 
											istring[p++]=48+poke[a[1]];
										}
										else
										{	
											istring[p++]=poke[a[1]]/10+48;
											istring[p++]=poke[a[1]]%10+48;
										}

										istring[p++]=')';
										
										switch(b[1])
												{
												case 0: istring[p++]='+';break;
												case 1: istring[p++]='-';break;
												case 2: istring[p++]='*';break;
												case 3: istring[p++]='/';break;
												}
										istring[p++]='(';
										if(poke[a[2]]/10==0)
										{ 
											istring[p++]=48+poke[a[2]];
										}
										else
										{	
											istring[p++]=poke[a[2]]/10+48;
											istring[p++]=poke[a[2]]%10+48;
										}

								
										switch(b[2])
												{
												case 0: istring[p++]='+';break;
												case 1: istring[p++]='-';break;
												case 2: istring[p++]='*';break;
												case 3: istring[p++]='/';break;
												}
										if(poke[a[3]]/10==0)
										{ 
											istring[p++]=48+poke[a[3]];
										}
										else
										{	
											istring[p++]=poke[a[3]]/10+48;
											istring[p++]=poke[a[3]]%10+48;
										}

										istring[p++]=')';
										
										istring[p++]='=';
										istring[p++]='2';
										istring[p++]='4';
										istring[p]=NULL;
										ShowFonts(istring);
										p=0;
										count++;
										
									}
							
					
						}
				}
			}
		}
	
	}
	if(count==0)
		ShowFonts("there is no answer at all");
	return count;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -