遍历字符串S,使用数组统计其中26个字母分别出现的次数
最终最少的字母出现次数即为可以召唤的神龙数
再乘以n就是可以实现的愿望数
C语言参考代码如下:
#include <stdio.h>
int main(){
long long int n; // 注意n的取值范围超过了2^31-1,应取长整型
scanf("%lld", &n);
char S[1000000];
scanf("%s", S);
int cnt[26] = {0}; // 统计26个字母分别出现的次数
int i = 0;
while (S[i] != '\0') {
cnt[S[i] - 'A']++;
i++;
}
int wish = cnt[0]; // 可实现的愿望数
for (i = 1; i < 26; i++) {
if (cnt[i] < wish)
wish = cnt[i]; // 取cnt[]中的最小值
}
printf("%lld\n", n * wish);
return 0;
}
运行结果如下:
符合样例输出,望采纳~