笨小猴·题解
2023-07-31 18:43:05
发布于:浙江
1阅读
0回复
0点赞
思路:
这道题目是要求输入一个未规定长度的英语单词,然后获取出现最多的单词的数量与最少的数量,如果最多减最少得到的数字是质数则输出Lucky Word
和这个数字,否则输出No Answer
和0
。
代码:
#include <bits/stdc++.h>
using namespace std;
map<char,int> strs; 定义map数组方便存储,下标是char类型数据是int类型
char c;
int max_=-999999,min_=999999;
bool isprime(int num){ 判断是不是质数
if(num<2) return 0;
else if(num==2) return 1;
else{
for(int i=2;i<num;i++) if(num%i==0) return 0;
return 1;
}
}
int main(){
while(cin>>c) strs[c]++; while输入未知长度的英语单词
for(int i=0;i<26;i++){ 英语单词只有26个所有重复26次
c='a'+i;
if(strs[c]!=0) max_=max(max_,strs[c]),min_=min(min_,strs[c]);
}
if(isprime(max_-min_)) cout<<"Lucky Word"<<endl<<max_-min_; 判断并输出
else cout<<"No Answer\n0";
return 0;
}
这里空空如也
有帮助,赞一个