相对之前写过的简易24点计算器,
简易24点计算器,四种运算方法
但这次略微添加了另外四种
——平方根、平方、立方以及高运算阶乘
程序不能含有减法的高运算阶乘(已注释,请注意)69行处,bug出现(4!-4!)的情况。
4个数,最好定为50以下和-70以上
数字过大,会造成严重卡顿(20分钟左右)
#include <bits/stdc++.h>
#include <string>
#include <stdlib.h>
#define S(x) (sqrt(x))
#define P(x,y) exp((y)*(log(x)))
using namespace std;
const double PRECISION=1E-6;
const int COUNT_OF_NUMBER=4;
const int NUMBER_TO_BE_CAL=24;
double number[COUNT_OF_NUMBER];
string expression[COUNT_OF_NUMBER];
bool Judgement=false;
long long cnt=0;
string s="&",v="^",t="2",o=" ",p="3",g="!";
long long F(int n){
long long result=1;
for(int i=1;i<=n;i++){
result*=i;
}return result;
}void Search(int n){
if(n==1){
if(fabs(number[0]-NUMBER_TO_BE_CAL)<=PRECISION){
cout<<expression[0]<<"\t\t";
Judgement=true;
cnt++;
if((cnt%3)==0)cout<<endl;
}else{
/Sleep/
}
}for(int i=0;i<n;i++) {
for(int j=i+1;j<n;j++){
double a,b;
string expa,expb;
a=number[i],b=number[j];
number[j]=number[n-1];
expa=expression[i],expb=expression[j];
expression[j]=expression[n-1];
expression[i]='('+expa+'+'+expb+')',number[i]&#