您现在的位置是:主页 > news > php开发网站项目心得/婚恋网站排名前十名

php开发网站项目心得/婚恋网站排名前十名

admin2025/6/4 20:46:38news

简介php开发网站项目心得,婚恋网站排名前十名,生鲜网站模板,html网站设计模板上一个版本有一点小问题&#xff0c;插括号时考虑的太少了&#xff0c;丢掉了几种情况&#xff0c;所以导致括号的数量稀少&#xff0c;所以我稍微改进了一下&#xff0c;还有&#xff0c;我按照老师的标准把格式也稍微改了一下 下面是我改进后的代码 #include<iostream>…

php开发网站项目心得,婚恋网站排名前十名,生鲜网站模板,html网站设计模板上一个版本有一点小问题&#xff0c;插括号时考虑的太少了&#xff0c;丢掉了几种情况&#xff0c;所以导致括号的数量稀少&#xff0c;所以我稍微改进了一下&#xff0c;还有&#xff0c;我按照老师的标准把格式也稍微改了一下 下面是我改进后的代码 #include<iostream>…

上一个版本有一点小问题,插括号时考虑的太少了,丢掉了几种情况,所以导致括号的数量稀少,所以我稍微改进了一下,还有,我按照老师的标准把格式也稍微改了一下

下面是我改进后的代码

#include<iostream>
#include<cstdlib>
#include<set>
#include<ctime>
#include<string.h>
#include<string>
#include<sstream>
using namespace std;
#define random(x) (rand()%x)
int a[100];
char s[4]={'+','-','*','/'};
char sym[100];
char brackets[100];
int num[100];
string numToString(int num)
{stringstream ss;string as="";ss<<num;ss>>as;return as;
}
void dfs(int s,int e)//使用dfs递归添加括号 
{if(!random(4)) //四分之一的概率,不进行任何操作 
    {return;}if(e-s<=1)//只有一个元素或没有元素,不进行任何操作 
    {return;} int s1=random(e-s-1)+s;//随机生成插入括号的位置 int e1=random(e-s1)+s1;while(s1<s||e1>e||s1>=e1||(s1==s&&e1==e))//避免无用括号 
    { s1=random(e-s-1)+s;e1=random(e-s1)+s1;}if(brackets[s1]==')'||brackets[e1]=='(') {return;} brackets[s1]='(';brackets[e1]=')';num[s1]++;num[e1]++; dfs(s,s1-1);//插入括号的左边几个元素 dfs(e1+1,e);//括号之间的几个元素 dfs(s1,e1);//括号右边的几个元素 
}
int main()
{srand(time(NULL)); int T=30,n;set<string> mySet;string ans;while(T--){ans="";n=random(8)+2;memset(brackets,'.',sizeof(brackets));memset(num,0,sizeof(num));for(int i=1;i<=n;i++){a[i] = random(999)+1;sym[i]=s[random(4)];}dfs(1,n);while(brackets[1]=='('&&num[1]--){ans+='(';}ans+=numToString(a[1]);for(int i=2;i<=n;i++){ans+=sym[i];while(brackets[i]=='('&&num[i]--){ans+='(';} ans+=numToString(a[i]);while(brackets[i]==')'&&num[i]--){ans+=')'; } }if(!mySet.count(ans)){cout<<ans<<endl;mySet.insert(ans);}else{T++;}}return 0;
}

 

 

转载于:https://www.cnblogs.com/yifan2016/p/5267958.html