qq_36144056 2017-03-18 06:56 采纳率: 50%
浏览 526

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

#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;
}

}

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 怎么获取下面的: glove_word2id.json和 glove_numpy.npy 这两个文件
    • ¥15 js调用html页面需要隐藏某个按钮
    • ¥15 ads仿真结果在圆图上是怎么读数的
    • ¥20 Cotex M3的调试和程序执行方式是什么样的?
    • ¥20 java项目连接sqlserver时报ssl相关错误
    • ¥15 一道python难题3
    • ¥15 牛顿斯科特系数表表示
    • ¥15 arduino 步进电机
    • ¥20 程序进入HardFault_Handler
    • ¥15 oracle集群安装出bug