先出示一下我的代码:
#include<iostream>
#include<iomanip>
#include<cmath>
#include<cstring>
using namespace std;
int num=0,N=0,K=0,X=0;
int a[21]={};
bool sushu(int z){
for(int i=2;i<=z/2;i++){
if(z%i==0){
return false;
}
}
return true;
}
void dfs(int m, int sum, int xx){
if(m == K){
if(sushu(sum)){
num=num+1;
}
return ;
}
for(int i = xx; i < N; i++)
dfs(m + 1, sum + a[i], i + 1);
return ;
}
int main(){
cin>>N>>K;
for(int i=1;i<=N;i++){
cin>>a[i];
}
dfs(0,0,0);
cout<<num;
return 0;
}
让我崩溃的是,我把第一个测试点(#2)的数据下载了下来,发现同样的输入(4 3 10 11 12 13),我的运行起来就输出正确答案(1),洛谷的输出就是(0) 。我换了几个编译器,找了几个朋友,用了不同的电脑,都是1 。啊我要崩溃了
大佬们,帮帮忙!!!!