代码
#include <stdio.h>
int main() {
char word[100]= {};
int count[26] = {0};
int maxn = 0, minn = 100, i,x=1,res;
scanf("%s", word);
for (i = 0; word[i]; i++) {
if(word[i]>='a'&&word[i]<='z')
count[word[i]-'a']++;
}
for (i = 0; i < 26; i++) {
if(count[i]!=0){
if (count[i] < minn) minn = count[i];
if (count[i] > maxn) maxn = count[i];}
}
res=maxn - minn;
for(i=2;i<res;i++){
if(res%i==0) x=0;
}
if (res > 1 && x==1)
printf("Lucky\n%d",res);
else
printf("No Answer\n0");
return 0;
}
友情提示
1、题目中所谓的出现次数最少的字母有个前提,是说已出现的字母中出现次数最少的字母。
2、知识点:scanf函数输入字符串存入数组的情况,可以用数组名即数组的内存地址直接存储。
(不建议使用gets/fgets函数,因为不太安全)
3、知识点:给整型数组中每个成员都初始化为0时可以直接a[0]={0},因为电脑会自动把剩下未赋值的成员自动赋值为0
题目描述
大头的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!
这种方法的具体描述如下:假设 maxn
是单词中出现次数最多的字母的出现次数,minn
是单词中出现次数最少的字母的出现次数,如果 maxn-minn
是一个质数,那么大头就认为这是个 Lucky
,这样的单词很可能就是正确的答案。
输入格式
一个单词,其中只可能出现小写字母,并且长度小于 100
。
输出格式
共两行,第一行是一个字符串,假设输入的的单词是 Lucky
,那么输出“ Lucky”
,否则输出“ No Answer”
;
第二行是一个整数,如果输入单词是 Lucky
,输出 maxn-minn
的值,否则输出 0
。
输入输出样例
输入1
error
输出1
Lucky
2
单词
error
中出现最多的字母r
出现了3
次,出现次数最少的字母出现了1
次,3−1=2
,2
是质数。
输入2
olympic
输出2
No Answer
0
单词
olympic
中出现最多的字母ii出现了1
次,出现次数最少的字母出现了1
次,1−1=0
,0
不是质数。