描述
为了获知基因序列在功能和结构上的相似性,经常需要将几条不同序列的DNA进行比对,以判断该比对的DNA是否具有相关性。
现比对两条长度相同的DNA序列。首先定义两条DNA序列相同位置的碱基为一个碱基对,如果一个碱基对中的两个碱基相同的话,则称为相同碱基对。接着计算相同碱基对占总碱基对数量的比例,如果该比例大于等于给定阈值时则判定该两条DNA序列是相关的,否则不相关。
输入
有三行,第一行是用来判定出两条DNA序列是否相关的阈值,随后2行是两条DNA序列(长度不大于500)。
输出
若两条DNA序列相关,则输出“yes”,否则输出“no”。
样例输入
0.85 ATCGCCGTAAGTAACGGTTTTAAATAGGCC ATCGCCGGAAGTAACGGTCTTAAATAGGCC
样例输出
yes
这道题要逐一比较每一个字符,最终把比率和阈值做比较就好了
首先列出要定义的变量
string a,b;//两条基因
int n=0,l;
double p;//阈值
输入
cin>>p>>a>>b;
对比每一个字符
for(i=0;i<l;i++) if(a[i]==b[i]) n++;
判断是否达到阈值
if(1.0*n/l>=p) cout<<"yes";
else cout<<"no";
含注释的完整代码
#include<bits/stdc++.h>//万能头
using namespace std;
int main(){
string a,b;//基因
int i,n=0,l;
double p;//阈值
cin>>p>>a>>b;//输入
l=a.size();
for(i=0;i<l;i++) if(a[i]==b[i]) n++;//逐个判断
if(1.0*n/l>=p) cout<<"yes";//判断是否相关
else cout<<"no";
return 0;
}
好啦