为什么我这个要去重,求解释
查看原帖
为什么我这个要去重,求解释
1098443
_Jimmy01楼主2023/11/9 18:30
#include <bits/stdc++.h>
using namespace std;
int n,k,a[25],ans=0;
bool isprime(int y){
	for(int i=2;i*i<=y;i++) if(y%i==0) return false;
	return true;
}
void dfs(int x,int sum){
	if(x>k){
		if(isprime(sum)) ans++;
		cout<<sum<<endl;
		return;
	}
	for(int i=x;i<=n-k+x-1;i++) dfs(x+1,sum+a[i]);
}
int main(){
	cin>>n>>k;
	for(int i=1;i<=n;i++) cin>>a[i];
	dfs(1,0);
	cout<<ans; 
	return 0;
}

我感觉不用去重啊,为什么有重的

2023/11/9 18:30
加载中...