远在天边的王
by UKE开车自动机 @ 2018-07-08 20:41:55
@[陈独秀的秀](/space/show?uid=28951) emmmmm
by 地表最强男人 @ 2018-07-08 20:43:17
@[陈独秀的秀](/space/show?uid=28951) 大佬帮忙看下
by 地表最强男人 @ 2018-07-08 20:43:34
那你能不能先把这个用cpp框起来
by UKE开车自动机 @ 2018-07-08 20:45:23
```cpp
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int n,k;
int a[23];//a代表数
int ans=0;//答案
int ansx=0;//找出的和
int x;//现在有几个数
bool g[23];//有没有使用过
bool find(int a)
{
for(int i=2;i<sqrt(a);i++)
{
if(a%i==0)
return false;
}
return true;
}
void dfs(int b)
{
g[b]=true;
x++;
ansx=ansx+a[b];
if(x==k)
{
if(find(ansx)==true)
ans++;
return;
}
for(int i=1;i<=n;i++)
{
if(g[i]==false&&x<k)
{
dfs(i);
g[i]=false;
x--;
ansx=ansx-a[i];
}
}
}
int main()
{
cin>>n>>k;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
for(int i=1;i<=n;i++)
{
dfs(i);
}
cout<<ans;
return 0;
}
```
by 地表最强男人 @ 2018-07-08 20:46:28
求助
by 地表最强男人 @ 2018-07-08 20:49:33
emmmm
看一下
by UKE开车自动机 @ 2018-07-08 20:49:38
```
for(int i=1;i<=n;i++)
{
if(g[i]==false&&x<k)
{
dfs(i);
g[i]=false;
x--;
ansx=ansx-a[i];
}
}
```
目测是这个循环的锅
by fbhou @ 2018-07-08 20:49:54
@[fbhou](/space/show?uid=65589) 请问怎么改
by 地表最强男人 @ 2018-07-08 20:50:47
哦好吧 你的判素数的函数写WA了
应该是<=吧
by fbhou @ 2018-07-08 20:51:06