RE求助!!!
查看原帖
RE求助!!!
677149
Dream_World楼主2023/4/18 21:42

本蒟蒻在做题时脑子突然抽搐,要用一种不用for的dfs,可是却RE了,求各路大佬指点迷津 (悬赏2个关注)

源码如下:

#include <iostream>
#include <cmath>
using namespace std;

int n, a[30], k, ans = 0, cnt = 1;
bool t[30];

bool isprime(int num){
	if (num == 0 || num == 1)
		return false;
	for (int i = 2; i <= sqrt(num); i++)
		if (num % i == 0)
			return false;
	return true;
}

void dfs(int p, int sum){
	if (n > p && cnt == k){
		if (isprime(sum))
			ans++;
		return ;
	}
	cnt++;
	dfs(p + 1, sum + a[p]);
	cnt--;
	dfs(p + 1, sum);
}

int main(){
	cin >> n >> k;
	for (int i = 1; i <= n; i++)
		cin >> a[i];
	dfs(1, 0);
	cout << ans;
	return 0;
}
2023/4/18 21:42
加载中...