2 qq 36144056 qq_36144056 于 2017.03.18 14:56 提问

求大神看看错在哪dfs题目(输出会有重复元素出现)hdu1016
dfs

#include
#include
#include
using namespace std;
bool prime[50];
void isprime()
{
prime[0]=prime[1]=0;
prime[2]=1;
for(int i=3;i {
prime[i]=i%2==0?0:1;
}
int t=(int)sqrt(50*1.0);
for( int i=3;i {
if(prime[i])
{
for(int j=i*i;j prime[j]=0;
}
}
}
int ans[22];
int v[22];
int n;
void dfs(int num)
{
if(num==n&&prime[ans[num]+ans[1]])
{
for(int i=1;i {
cout }
cout }
else
{
for(int i=2;i {
if(!v[i])
{
if(prime[i+ans[num-1]])
{
v[i]=1;
ans[num++]=i;
dfs(num);
v[i]=0;
num--;
}
}
}
}
}
int main()
{
int k=1;
isprime();
while(cin>>n)
{
memset(v,0,sizeof(v));
ans[1]=1;
cout<<"Case "<<k++<<":"<<endl;
dfs(2);
cout<<endl;
}

}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!