【入门】排除异形基因 - 算法解析与 C++ 代码实现

比赛题目

时间限制:C/C++ 1000MS,其他语言 2000MS 内存限制:C/C++ 16MB,其他语言 32MB

描述

神舟号飞船在完成宇宙探险任务回到地球后,宇航员张三感觉身体不太舒服,去了医院检查,医生诊断结果:张三体内基因已被改变,原有人体基因序列中已经被渗入外星球不明异形生物基因,但可喜的是,这些异形基因都有一个共同的特征,就是该基因序号的平方除以7的余数都是1,要赶快清除掉,否则会危害整个人类。赶快行动吧。

输入描述

第一行是一个整数 n(基因个数, 3<=n<=200) 第二行是 n 个整数(张三的基因序列)

输出描述

去除异形基因后的正常序列,空格隔开

用例输入 1

4 6 2 8 12

用例输出 1

2 12

C++ 代码实现

#include <iostream>
#include <vector>

int main() {
    int n;
    std::cin >> n;

    std::vector<int> genes(n);
    for (int i = 0; i < n; i++) {
        std::cin >> genes[i];
    }

    std::vector<int> normalGenes;
    for (int i = 0; i < n; i++) {
        if ((genes[i] * genes[i]) % 7 != 1) {
            normalGenes.push_back(genes[i]);
        }
    }

    for (int i = 0; i < normalGenes.size(); i++) {
        std::cout << normalGenes[i] << " ";
    }

    return 0;
}

代码解析

  1. 输入基因序列: 代码首先读取基因个数 n 和基因序列,存储在 genes 向量中。
  2. 筛选正常基因: 循环遍历每个基因,判断其平方除以 7 的余数是否为 1。如果不是,则将其加入 normalGenes 向量。
  3. 输出正常序列: 最后将 normalGenes 向量中的元素输出,即为去除异形基因后的正常序列。

总结

本教程通过一个简单的基因序列筛选问题,演示了如何使用 C++ 代码实现算法逻辑。希望本教程能帮助您更好地理解算法原理和代码实现。

基因序列清除:去除异形基因算法详解 (C++ 代码)

原文地址: https://www.cveoy.top/t/topic/qjAX 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录