题解 笨小猴:最暴力,最通俗易懂,最适合初级者们的题解
Fractures
2018-06-23 21:05:26
本作者认为,要写出一个好方程,最厉害的不是说会多么华丽的语句,
而是拿这最简练的语句,最巧妙的方式,写出最复杂的编程
我承认,我还是个蒟蒻。我拿最通俗的语句,反复构思了两天,做出来这道题
我只希望,那些像我一样,看起来很菜的人们,看到我写的题解能得到启发,
也看到这些话以后,努力学习,不放弃,不气馁,争取拍死远在前面的所谓
的"大佬"。加油!
```cpp
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<iomanip>
using namespace std;
bool flag=true;//便于质数判断
char a[27],b[101];
int ntxt=0,num[27],maxn,tmp=0;
int main(){
a[1]='a';
for(int i=2;i<=26;i++)a[i]=a[i-1]+1;//列举a-z
while((b[ntxt]=getchar())!='\n')ntxt++;
for(int i=1;i<=26;i++)
for(int j=0;j<=ntxt;j++)
if(a[i]==b[j])num[i]++;//出现一个字母,就对应的num+1
sort(num+1,num+27);
for(int i=1;i<=26;i++){
if(num[i]==0)tmp=i;//防止"minn"为0
}
maxn=num[26]-num[tmp+1];
if(maxn==0||maxn==1){//不知为什么0和1老是不能被判为非质数,所以就直接判定为"No Answer"
cout<<"No Answer"<<endl;
cout<<"0"<<endl;
return 0;
}
for(int i=2;i<maxn;i++)//判定质数
if(maxn%i==0){flag=false;break;}
if(flag==true){
cout<<"Lucky Word"<<endl;
cout<<maxn<<endl;
}
if(flag==false){
cout<<"No Answer"<<endl;
cout<<"0"<<endl;
}
return 0;
}
```