递归---选数

选数

选数

题意

给定n,k,从 n 个整数中任选 k 个整数相加,如果相加的和为素数就记一次,输出有几个和为素数

思路

本题使用递归,先算出K个数的和,再判断是否为素数,如果是素数就记一,最后输出

算法一:递归

时间复杂度

普及

实现步骤

定义一个递归函数dfs,如果K个数的和为素数记一,并继续递归,防止算重。定义bool值判断是否为素数

代码
#include <iostream>
#include <cstdio>
using namespace std;
bool isprime(int a){
   //判断素数
    for(int i = 2;i * i <= a; i++)
        if(a % i == 0)
            return false;//扔回false
    return true;//扔回true
}

int n,k;
int a[25];
long long ans;

void dfs(int m, int sum, int startx){
   //递归
//m代表现在选择了多少个数
//sum表示当前的和
//startx表示升序排列,以免算重
    if(m == k){
   //如果全部选完 
        if(isprime(sum))//如果和为素数
            ans++;
        return ;
    }
    for(int i = startx; i < n; i++)
        dfs(m + 1, sum + a[i], i + 1);//递归
        //步数要加一,和也要加
        //升序起始值要变成i+1,以免算重
    return ;
}

int main(){
   
    scanf("%d%d",&n,&k);
    for(int i = 0; i < n; i++)
        scanf("%d",&a[i]);
    dfs(0,0,0);//调用函数,定义最初值为0 
    printf("%d\n",ans); 
    return 0;
}
 
 

相关推荐

  1. ---

    2023-12-29 01:08:07       56 阅读
  2. 的三种

    2023-12-29 01:08:07       37 阅读
  3. <span style='color:red;'>递</span><span style='color:red;'>归</span>

    2023-12-29 01:08:07      47 阅读
  4. 推与

    2023-12-29 01:08:07       56 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-29 01:08:07       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-29 01:08:07       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-29 01:08:07       87 阅读
  4. Python语言-面向对象

    2023-12-29 01:08:07       96 阅读

热门阅读

  1. 部署UOS PXE服务器

    2023-12-29 01:08:07       42 阅读
  2. web安全,常见的攻击以及如何防御

    2023-12-29 01:08:07       55 阅读
  3. Obsidian 快捷方式总结 ——提升你的工作效率

    2023-12-29 01:08:07       91 阅读
  4. 安装Paddlehub报错

    2023-12-29 01:08:07       62 阅读
  5. c++ day3

    c++ day3

    2023-12-29 01:08:07      57 阅读
  6. MySQL-长事务详解

    2023-12-29 01:08:07       46 阅读
  7. 力扣热题100道-子串篇

    2023-12-29 01:08:07       53 阅读
  8. mysql的统计数据count

    2023-12-29 01:08:07       42 阅读
  9. C++ 657. 机器人能否返回原点 简单模拟

    2023-12-29 01:08:07       53 阅读