有个地方不明白,这个sum是怎么重置为0的
查看原帖
有个地方不明白,这个sum是怎么重置为0的
1202918
cpulxb楼主2024/1/23 23:07
#include<bits/stdc++.h>
using namespace std;
int a[20];
int vis[20];
int n, k;
int num;//和为质数的个数
void dfs(int x,int sum,int step)
{
    if (step == k)
    {
        for (int j = 2; j *j<= sum; j++)
        {   
            if (sum % j == 0) {
                 return;
            }
        }
        num++;  return;
    }
    for (int i =x; i < n; i++)
    {
        if (vis[i] == 0)
        {
            vis[i] = 1;
            dfs(i+ 1, sum+a[i], step + 1);
            vis[i] = 0;
        }
        
    }
}
int main()
{

    cin >> n >> k;
    for (int i = 0; i < n; i++)cin >> a[i];
    dfs(0,0,0);
    cout << num;
    return 0;
}
2024/1/23 23:07
加载中...