用C语言,假设 maxn 是单词中出现次数最多的字母的出现次数, minn 是单词中出现次数最少的字母的出现次数,如果 maxn − minn 是一个质数,那么就认为这是个 Lucky Word,这样的单词很可能就是正确的答案。 输入格式 一个单词,其中只可能出现小写字母,并且长度小于100。 输出格式 共两行,第一行是一个字符串,假设输入的的单词是 Lucky Word,那么输出 Lucky Word,否则输出 No Answer; 第二行是一个整数,如果输入单词是 Lucky Word,输出 maxn − minn的值,否则输出 0。
时间: 2024-03-22 11:39:52 浏览: 95
C语言实验--输入一个字符,若是小写字母,转换成大写字母输出;若是大写字母,则转换成小写字母输出。
5星 · 资源好评率100%
好的,我来解答你的问题。
以下是 C 语言实现:
```c
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
int main() {
char word[101];
scanf("%s", word);
int cnt[26] = {0};
int len = strlen(word);
for (int i = 0; i < len; i++) {
cnt[word[i] - 'a']++;
}
int maxn = 0, minn = len;
for (int i = 0; i < 26; i++) {
if (cnt[i] > maxn) maxn = cnt[i];
if (cnt[i] < minn && cnt[i] > 0) minn = cnt[i];
}
int diff = maxn - minn;
bool is_prime = true;
for (int i = 2; i * i <= diff; i++) {
if (diff % i == 0) {
is_prime = false;
break;
}
}
if (is_prime) {
printf("Lucky Word\n%d\n", diff);
} else {
printf("No Answer\n0\n");
}
return 0;
}
```
输入一个单词,先统计每个字母出现的次数,找到出现次数最多的字母和出现次数最少的字母。计算它们的差值,判断是否为质数,输出相应结果即可。
阅读全文