天天看点

杭电acm 1708 字符串相加再计数

#include <stdio.h>  
#include <string.h>  
int main()  
{  
    int n, k, f[][], i, j;  
    char str1[], str2[];  
    scanf("%d", &n);  
    while (n--)  
    {  
        scanf("%s%s%d", str1, str2, &k);  
        memset(f, , sizeof(f));  
        for(i = ; str1[i] != NULL; i++)  
            f[][str1[i] - 'a']++;  
        for(i = ; str2[i] != NULL; i++)  
            f[][str2[i] - 'a']++;  
        for(i = ; i <= k; i++)  
            for (j = ; j < ; j++)  
            {  
                f[i][j] = f[i-][j] + f[i-][j];  
            }  
        for(i = ; i < ; i++)  
            printf("%c:%d\n", i + 'a', f[k][i]);  
        printf("\n");  
    }  
    return ;  
}  
           

该题思路:用二维数组,一个用于递推,一个用于统计每个字母数。同时灵活运用字符ASCII码值。