zoukankan      html  css  js  c++  java
  • 【C语言程序】基因编码

    输入一个长为n=2k(k≤8)01串s,按照"ABC编码规则"进行编码,ABC编码规则是:

                                                                     A                      //若s串全是0

                                                      T(s)=       B                      //若s串全是1

                                                                     CT(s1)T(s2)     //否则把s串分成两个等长的子串s1和s2

    例如:

         T(01001011)

    =CT(0100)T(1011)

    =CCT(01)T(00)CT(10)T(11)

    =CCCT(0)T(1)ACCT(1)T(0)B

    =CCCABACCBAB

    #include <stdio.h>
    #include <string.h>
    void f(char a[],int begin,int end)
    {
    int num_A=0,num_B=0;
    int i;
    for(i=begin;i<end;i++)
    {
    if(a[i]=='0')
    num_A++;         //记录0的个数 
    else if(a[i]=='1')
    num_B++;         //记录1的个数 
    }
    if(num_A==end-begin)//如果该数组全为0 
    printf("A");
    else if(num_B==end-begin)//如果该数组全为1 
    printf("B");
    else
    {
    printf("C");
    f(a,begin,(end+begin)/2); 
    f(a,(end+begin)/2,end);
    }
    }
    int main()
    {
    char a[500];
    int length;
    gets(a);
    length=strlen(a);
    f(a,0,length);
    return 0;
    }

      

     

  • 相关阅读:
    ubuntu16.04安装破解pycharm
    python解压,压缩,以及存数据库的相关操作
    cocoapods Error
    swift项目导入OC框架
    实现全屏滑动返回效果
    Storyboard & XIB 自己的理解
    View & Controller 一些方法的执行顺序
    Touch ID 实现
    Apple Pay 初探
    ReactiveCocoa学习
  • 原文地址:https://www.cnblogs.com/levelstrcpy/p/7842971.html
Copyright © 2011-2022 走看看