P1125题目
本题目用string类十分好写 不用在乎输入字符串的长度 直接用**a.size()**函数遍历每一个字符
上代码
#include<bits/stdc++.h>
using namespace std;
int cnt[26]={0};
bool Z(int k)//bool判断是非质数
{
for(int i=2;i<k;i++)
{if(k%i==0)
return 0;//0是非质数
}
return 1;//1是质数
}
int main()
{
string a;
getline(cin,a);
for(int i=0;i<a.size();i++)
{
cnt[a[i]-'a']++;//a[i]-'a'是存储字符与a的ascii差值,使cnt数组里从0开始到26是依次存放abcde...的个数
}
int maxn=cnt[0];//找最大最小值
int minn;
for(int i=0;i<26;i++)
{
if(cnt[i]>maxn&&cnt[i]>0)
maxn=cnt[i];
}
minn=maxn;//从小往大找最大 从大往小找最小
for(int i=0;i<26;i++)
{
if(cnt[i]<minn&&cnt[i]>0)
minn=cnt[i];
}
int k=maxn-minn;
if(k==1||k==0)
{
cout<<"No Answer"<<endl;
cout<<"0"<<endl;
return 0;
}
if(Z(k))
{
cout<<"Lucky Word"<<endl;
cout<<k<<endl;
}
else
{
cout<<"No Answer"<<endl;
cout<<"0"<<endl;
}
return 0;
}