【C语言程序】基因编码

时间:2022-01-04 15:25:51

输入一个长为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=,num_B=;
int i;
for(i=begin;i<end;i++)
{
if(a[i]=='')
num_A++; //记录0的个数
else if(a[i]=='')
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)/);
f(a,(end+begin)/,end);
}
}
int main()
{
char a[];
int length;
gets(a);
length=strlen(a);
f(a,,length);
return ;
}