NOI / 1.9编程基础之顺序查找
06:笨小猴
描述
笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!
这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn-minn是一个质数,那么笨小猴就认为这是个Lucky Word,这样的单词很可能就是正确的答案。
输入
只有一行,是一个单词,其中只可能出现小写字母,并且长度小于100。
输出
共两行,第一行是一个字符串,假设输入的的单词是Lucky Word,那么输出“Lucky Word”,否则输出“No Answer”;
第二行是一个整数,如果输入单词是Lucky Word,输出maxn-minn的值,否则输出0。
样例输入
样例 #1: error 样例 #2: olympic
样例输出
样例 #1: Lucky Word 2 样例 #2: No Answer 0
题意
判断是否是Lucky Word
思路
判断maxn是否是单词中出现次数最多的字母,minn是否是单词中出现次数最少的字母,在判断maxn-minn是否是一个质数
代码实现
#include<cstdio>
#include<cstring>
char s[200],ch[100]={0};
int main(){
scanf("%s",s);
int len=strlen(s);
int maxn=-1,minn=500;
for (int i=0;i<=len-1;i++){
int t=s[i]-96;
ch[t]++;
}//maxn是否是单词中出现次数最多的字母
for (int i=1;i<=26;i++){
if (ch[i]>maxn) maxn=ch[i];
if (ch[i]!=0&&ch[i]<minn) minn=ch[i];
}//minn是否是单词中出现次数最少的字母
int i,n=maxn-minn;
if (n>=2){
for (i=2;i<=n-1&&n%i!=0;i++);//maxn-minn
if (n==2||i==n) printf("Lucky Word\n%d\n",n); //maxn-minn是一个质数,Lucky Word
else printf("No Answer\n0\n");//maxn-minn不是一个质数, 输出“No Answer”
}
else printf("No Answer\n0\n");
return 0;
}
时郁涵
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】