笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!
这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn-minn是一个质数,那么笨小猴就认为这是个Lucky Word,这样的单词很可能就是正确的答案。
思路来了:
1.输入,将每个字母的出现次数读入数组a中
2.统计maxn和minn,注意一个细节:a[i]要>0才要统计
3.判断素数,一个大于2的自然数从2-他的开平方(sqrt())如果都没有他的因数那么他就是个素数
4.输出答案
#include<bits/stdc++.h>
using namespace std;
int maxn=-1,minn=99,a[26];
string s;
int main()
{
cin>>s;
for(int i=0;i<s.size();i++)
a[s[i]-'a']++;
for(int i=0;i<26;i++)
{
if(a[i]>maxn) maxn=a[i];
if(a[i]<minn && a[i]!=0) minn=a[i];
}
int n=maxn-minn;
if(n==1 || n==0)
{
cout<<"No Answer\n0";
return 0;
}
for(int i=2;i<=sqrt(n);i++)
if(n%i==0)
{
cout<<"No Answer\n0";
return 0;
}
cout<<"Lucky Word\n"<<maxn-minn;
}
如有疑问欢迎留言!