第五章 数 组-1131:基因相关性

1131:基因相关性

时间限制: 1000 ms 内存限制: 65536 KB
提交数: 19846 通过数: 10090
【题目描述】
为了获知基因序列在功能和结构上的相似性,经常需要将几条不同序列的DNA进行比对,以判断该比对的DNA是否具有相关性。

现比对两条长度相同的DNA序列。定义两条DNA序列相同位置的碱基为一个碱基对,如果一个碱基对中的两个碱基相同的话,则称为相同碱基对。接着计算相同碱基对占总碱基对数量的比例,如果该比例大于等于给定阈值时则判定该两条DNA序列是相关的,否则不相关。

【输入】
有三行,第一行是用来判定出两条DNA序列是否相关的阈值,随后2行是两条DNA序列(长度不大于500)。

【输出】
若两条DNA序列相关,则输出“yes”,否则输出“no”。

【输入样例】
0.85
ATCGCCGTAAGTAACGGTTTTAAATAGGCC
ATCGCCGGAAGTAACGGTCTTAAATAGGCC
【输出样例】
yes


思路: 1、计算相同碱基对。
2、计算相同碱基对占总碱基对数量的比例。
3、如果该比例大于等于给定阈值输出结果。

#include <iostream>
#include <iomanip>
#include <cstring>
using namespace std;
int main()
{
    char dna1[500],dna2[500];
    float maxn, ratio;
    int same = 0;
    long sum;
    cin >> maxn >> dna1 >> dna2;
    sum = strlen(dna1);
    for (int i = 0; i < sum; i++){
        if (dna1[i] == dna2[i])
         same++;
    }
    ratio = same/(float)sum;
    if (ratio >= maxn) cout << "yes";
    else cout << "no";
    return 0;
}
发布了398 篇原创文章 · 获赞 2 · 访问量 1万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 1024 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览