洛谷B2111 基因相关性

题目描述

为了获知基因序列在功能和结构上的相似性,经常需要将几条不同序列的 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;
}

END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值