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

📄 有优先级别的24点.cpp

📁 一些c++小程序
💻 CPP
字号:
#include<iostream.h>
const double min=0.0000001;
const int size=4;
struct  node{
	char  name;
	  double value;
}data[size];
double find(char ch,int change)
{
  double re=0;
   int pos=-1;
	for(int i=0;i<size;i++)
		if(data[i].name==ch)
		{
			re=data[i].value;
			 pos=i;
			  break;
		}
		if(change==1&&pos!=-1)
			data[pos].value=-data[pos].value;
		  return re;
}
double  cal(char str[],int begin,int end,int change)
{
	double result=find(str[begin],0);
	if(change==1)
	 {
	  for(int i=begin+1;i<end;i+=2)
		  if(str[i]=='-')
			  find(str[i+1],1);
	 }
	else
	{
	   if(begin>end)
	    	return 0;
		   int pos=-1;
		    for(int i=begin;i<=end;i++)
			   if(str[i]=='+'||str[i]=='-')
			   {
				   pos=i;
				    break;
			   }
			   if(pos!=-1)
				   return cal(str,begin,pos-1,0)+cal(str,pos+1,end,0);
			   for(i=begin+1;i<end;i+=2)
				   if(str[i]=='*')
					   result*=find(str[i+1],0);
				    else
						result/=find(str[i+1],0);
	}
					return result;
}
void main()
{
	char str[2*size],sign[4]={'+','-','*','/'};
	 int sum=0;
	 str[0]='a';str[2]='b';str[4]='c';str[6]='d';str[7]='\0';
	 for(int i=0;i<size;i++)
		 data[i].name='a'+i;
	  for(int a=1;a<=10;a++)
		  for(int b=1;b<=10;b++)
			  for(int c=1;c<=10;c++)
				  for(int d=1;d<=10;d++)
				  {
					  data[0].value=a;data[1].value=b;data[2].value=c;data[3].value=d;
					   for(int j=0;j<size;j++)
						   for(int k=0;k<size;k++)
							   for(int p=0;p<size;p++)
							   {
								   str[1]=sign[j];str[3]=sign[k];str[5]=sign[p];
								    cal(str,0,6,1);
									 double re=cal(str,0,6,0);
									  cal(str,0,6,1);
									 if(re-24<=min&&re-24>=-min)
									 {
										 cout<<data[0].value<<str[1]<<data[1].value;
										  cout<<str[3]<<data[2].value<<str[5];
										   cout<<data[3].value<<"="<<re<<endl;
										    sum++;
									 }
							   }
				  }
				  cout<<"一共是:"<<sum<<"个!"<<endl;
}

⌨️ 快捷键说明

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