一個fibonacci的變形。。
[cpp]
#include<stdio.h>
#include<string.h>
int ans[55][27];
int main()
{
int n,i,j,t;
char s1[31],s2[33];
scanf("%d",&t);
while(t--)
{
scanf("%s%s%d",s1,s2,&n);
memset(ans,0,sizeof(ans));
for(i=0;s1[i]!=NULL;i++)
ans[0][s1[i]-'a']++;
for(i=0;s2[i]!=NULL;i++)
ans[1][s2[i]-'a']++;
for(i=2;i<=n;i++)
for(j=0;j<26;j++)
ans[i][j]=ans[i-1][j]+ans[i-2][j];
for(i=0;i<26;i++)
printf("%c:%d\n",'a'+i,ans[n][i]);
printf("\n");
}
return 0;
#include<stdio.h>
#include<string.h>
int ans[55][27];
int main()
{
int n,i,j,t;
char s1[31],s2[33];
scanf("%d",&t);
while(t--)
{
scanf("%s%s%d",s1,s2,&n);
memset(ans,0,sizeof(ans));
for(i=0;s1[i]!=NULL;i++)
ans[0][s1[i]-'a']++;
for(i=0;s2[i]!=NULL;i++)
ans[1][s2[i]-'a']++;
for(i=2;i<=n;i++)
for(j=0;j<26;j++)
ans[i][j]=ans[i-1][j]+ans[i-2][j];
for(i=0;i<26;i++)
printf("%c:%d\n",'a'+i,ans[n][i]);
printf("\n");
}
return 0;