某天农夫救起落水的公主,皇帝为了报答农夫,问农夫想要什么。聪明的农夫指着国际象棋的棋盘,对皇帝说:您在第一个格子中放一粒大米,在第二个格子里放2粒,在第3个格子里放4粒,以此类推,每一格子里的大米粒数都是前一格的两倍。皇帝听后,觉得农夫的要求很容易满足,就笑着满口答应下来,并将计算任务交付于你。现输入格子数n,计算到第n个格子共需要的大米数。
【要求】
本题目需要使用递归函数结构实现;
#include <iostream>
#include <cmath>
using namespace std;
long long sum(int n){
if(n==1){
return 1;
}else{
return pow(2,n-1)+sum(n-1);
}
}
int main() {
int n;
cin >> n;
cout << sum(n);
return 0;
}
为了获知基因序列在功能和结构上的相似性,经常需要将几条不同序列的DNA进行比对,以判断该比对的DNA是否具有相关性。 现比对两条长度相同的DNA序列。定义两条DNA序列相同位置的碱基为一个碱基对,如果一个碱基对中的两个碱基相同的话,则称为相同碱基对。接着计算相同碱基对占总碱基对数量的比例,如果该比例大于等于给定阈值时则判定该两条DNA序列是相关的,否则不相关。
有三行,第一行是用来判定出两条DNA序列是否相关的阈值,随后2行是两条DNA序列(长度不大于500)。
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char a[501], b[501];
int count=0;
double m;
cin >> m;
cin >> a >> b;
for(int i=0;i<strlen(a);i++){
if(a[i]==b[i]){
count++;
}
}
if(count*1.0/strlen(a)>=m){
cout <<"yes";
}else{
cout <<"no";
}
return 0;
}