题目描述
为了获知基因序列在功能和结构上的相似性,经常需要将几条不同序列的 DNA 进行比对,以判断该比对的 DNA 是否具有相关性。
现比对两条长度相同的 DNA 序列。首先定义两条 DNA 序列相同位置的碱基为一个碱基对,如果一个碱基对中的两个碱基相同的话,则称为相同碱基对。接着计算相同碱基对占总碱基对数量的比例,如果该比例大于等于给定阈值时则判定该两条 DNA 序列是相关的,否则不相关。
输入格式
有三行,第一行是用来判定出两条 DNA 序列是否相关的阈值,随后 2 行是两条 DNA 序列(长度不大于 500)。
输出格式
若两条 DNA 序列相关,则输出 yes
,否则输出no
。
思路
(我很少一遍过,简单说说)
简单,输入string类型变量,用for循环判断两个字符串相似的地方,用double变量存起来再计算阈值,比较就行了。
#include<iostream>
#include<cstring>
/*上面也可以用string库,这里用的是cstring库,比string库函数多一点,用法一样*/
using namespace std;
int main(){
double a,d=0.0;
string b,c;
cin>>a;
cin>>b>>c;
for(int i=0;i<b.length();i++){//这里用了标准库函数std::string::length()
if(b[i]==c[i]){
d++;
}
}
d=d/b.length();//计算
if(d>=a){//判断
cout<<"yes"<<endl;
}else{
cout<<"no"<<endl;
}
return 0;
}