题目描述
笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!
这种方法的具体描述如下:假设 \text{maxn}maxn 是单词中出现次数最多的字母的出现次数,\minn 是单词中出现次数最少的字母的出现次数,如果 maxn−minn 是一个质数,那么笨小猴就认为这是个 Lucky Word,这样的单词很可能就是正确的答案。
输入格式
一个单词,其中只可能出现小写字母,并且长度小于 100。
输出格式
共两行,第一行是一个字符串,假设输入的的单词是 Lucky Word,那么输出 Lucky Word
,否则输出 No Answer
;
第二行是一个整数,如果输入单词是 Lucky Word
,输出 \text{maxn}-\text{minn}maxn−minn 的值,否则输出 00。
输入输出样例
输入
error
输出
Lucky Word 2
输入
olympic
输出
No Answer 0
#include<iostream>
#include<map>
#include<math.h>
#include<algorithm>
#include<string.h>
using namespace std;
map<char,int>m;
int main(){
int maxx=-999999,minn=999999;
char a[101];
cin>>a;
int l=strlen(a);
for(int i=0;i<l;i++){
m[a[i]]++;
maxx=max(maxx,m[a[i]]);
//minn=min(minn,m[a[i]]);
}
for(int i=0;i<l;i++){
minn=min(minn,m[a[i]]);
}
//cout<<maxx<<' '<<minn<<endl;
maxx-=minn;
// cout<<maxx<<endl;
if(maxx==0||maxx==1){
cout<<"No Answer"<<endl;
cout<<0;
return 0;
}
for(int i=2;i<=sqrt(maxx);i++){
if(maxx%i==0){
cout<<"No Answer"<<endl;
cout<<0;
return 0;
}
}
cout<<"Lucky Word"<<endl;
cout<<maxx;
return 0;
}
1,知识点数组下标嵌套
2,打擂台找出最大/小值
3,‘a'-'s'的结果是字符变数字
4,字符和数字的转换通过ascii码进行转换,数字需加上‘0’变成字符,相同的,字符需减去‘0’变成数字,例如数字3需加上‘0’才能变成字符‘3’,‘3’需减去‘0’才能变成数字3,之后通过int,char定义其所能定义的类型,便可完成程序。