CLEVER TREE'TERM

项目1配对碱基链

描述
脱氧核糖核酸(DNA)由两条互补的碱基链以双螺旋的方式结合而成。而构成DNA的碱基共有4种,分别为腺瞟呤(A)、鸟嘌呤(G)、胸腺嘧啶(T)和胞嘧啶(C)。我们知道,在两条互补碱基链的对应位置上,腺瞟呤总是和胸腺嘧啶配对,鸟嘌呤总是和胞嘧啶配对。你的任务就是根据一条单链上的碱基序列,给出对应的互补链上的碱基序列。

输入
第一行是一个正整数n,表明共有n条要求解的碱基链。
以下共有n行,每行用一个字符串表示一条碱基链。这个字符串只含有大写字母A、T、G、C,分别表示腺瞟呤、胸腺嘧啶、鸟嘌呤和胞嘧啶。每条碱基链的长度都不超过255。

输出
共有n行,每行为一个只含有大写字母A、T、G、C的字符串。分别为与输入的各碱基链互补的碱基链。

样例输入
5
ATATGGATGGTGTTTGGCTCTG
TCTCCGGTTGATT
ATATCTTGCGCTCTTGATTCGCATATTCT
GCGTTTCGTTGCAA
TTAACGCACAACCTAGACTT

样例输出
TATACCTACCACAAACCGAGAC
AGAGGCCAACTAA
TATAGAACGCGAGAACTAAGCGTATAAGA
CGCAAAGCAACGTT
AATTGCGTGTTGGATCTGAA

#include<stdio.h>
#include<string.h>
using namespace std;
int main() {
    int n, i;
    scanf("%d", &n);
    char a[256];
    getchar();
    while(n--) {
        gets(a);
        int len = strlen(a);
        for(i=0;i<len;i++) {
            switch (a[i]) {
                case 'A':
                    printf("T");
                    break;
                case 'T' :
                    printf("A");
                    break;
                case 'G' :
                    printf("C");
                    break;
                case 'C' :
                    printf("G");
                    break;
            }
        }
        printf("\n");
    }
    return 0;
}

>生成码
>a53bb57635e071daa34f436cde506e80d35853793f90c6219236354928b18036

项目2 求字母个数

描述
在一个字符串中找出元音字母a,e,i,o,u出现的次数。

输入

输出
输出一行,依次输出a,e,i,o,u在输入字符串中出现的次数,整数之间用空格分隔。

样例输入 If so, you already have a Google Account. You can sign in on the right.
样例输出
5 4 3 7 3

#include <iostream>
#include <cstdio>
using namespace std;
int main(){
   int i;
   int num[5] = {0,0,0,0,0};
   char inp[100];
   cin.getline(inp, 100);
   for(i=0; inp[i] != '\0'; i++){
         if(inp[i] == 'a')
            num[0]++;
         else if(inp[i] == 'e')
            num[1]++;
         else if(inp[i] == 'i')
            num[2]++;
         else if(inp[i] == 'o')
            num[3]++;
         else if(inp[i] == 'u')
            num[4]++;
    }
    for(i = 0; i < 5; i++)
        cout << num[i] << " ";
        cout << endl ;
    return 0;
}

>生成码
>39381c5dec5dc6aa43197d3e4fa53382de07e60ca62e11da686814330b4c4dcd

项目3计算矩阵边缘元素之和

描述
输入一个整数矩阵,计算位于矩阵边缘的元素之和。所谓矩阵边缘的元素,就是第一行和最后一行的元素以及第一列和最后一列的元素。

输入
第一行为整数k,表示有k组数据。 每组数据有多行组成,表示一个矩阵: 第一行分别为矩阵的行数m和列数n(m < 100,n < 100),两者之间以空格分隔。 接下来输入的m行数据中,每行包含n个整数,整数之间以空格作为间隔。

输出
输出对应矩阵的边缘元素和,一个一行。

样例输入
2 4 4
1 1 1 1
0 0 0 0
1 0 1 0
0 0 0 0
3 3
3 4 1
3 7 1
2 0 1

样例输出
5
15

#include<stdio.h>
int main(){
    int s,m,n,i,j;
    int sum=0;
    int z;
    scanf("%d",&s);
    while(s>0){
        scanf("%d%d",&m,&n);
        sum=0;
        for(i=0;i<m;i++){
            for(j=0;j<n;j++){
                scanf("%d",&z);
                if(i==0||i==m-1||j==0||j==n-1)
                    sum=sum+z;
            }
        }
        printf("%d\n",sum);
        s--;
    }
    return 0;
}

>生成码
>4773e826c8795413d999979e686e7f97c4b1202ada08775315775407aa3afab9

项目4 苹果和虫子

描述
你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?

输入
输入仅一行,包括n,x和y(均为整数)。输入数据保证y <= n * x。

输出
输出也仅一行,剩下的苹果个数

样例输入
10 4 9
样例输出
7

#include<stdio.h>
int main(){
  int x,y,n,i,j;
  printf("please input n,x,y:\n");
  scanf("%d%d%d",&n,&x,&y);
  j=y%x;
  if(j!=0) j=y/x+1;
  else j=y/x;
  i=n-j;
  printf("n=%5d\tx=%5d\ty=%5d\t最后剩下=%5d\n",n,x,y,i);
  return 0; 
}

>生成码
>5ef8368af16374cabef8e5ae3ee39c4374a36a4c52b4b560bc8fc10ca47a6605

项目5 整数的个数

描述
给定k(1< k < 100)个正整数,其中每个数都是大于等于1,小于等于10的数。写程序计算给定的k个正整数中,1,5和10出现的次数。

输入
输入有两行:第一行包含一个正整数k,第二行包含k个正整数,每两个正整数用一个空格分开。

输出
输出有三行,第一行为1出现的次数,,第二行为5出现的次数,第三行为10出现的次数。

样例输入
5
1 5 8 10 5
样例输出
1
2
1

#include <stdio.h>
int main(){
    int i, k, j, a, b, c;
    a = b = c = 0;
    scanf("%d", &k);
    for (i = 1;i <= k;++i){
        scanf("%d", &j);
        if (j == 1) ++a;
        if (j == 5) ++b;
        if (j == 10) ++c;
    }
    printf("%d\n%d\n%d\n", a, b,c);
}

>生成码
>b7c7a8c59878c814bb722d38c2f57cc37b3abff3427b774dc2a920ad002fb222
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值