有大佬吗?????????
by luckysboy @ 2018-11-09 20:08:15
错太多了,zs函数1,0没有特判;
main里for循环要<=strlen(a),下面函数也没调用
具体代码如下:
```cpp
#include<bits/stdc++.h>
using namespace std;
int zs(int a)
{
if(a<2)return 0;
for(int i=2;i<=sqrt(a);i++)
if(a%i==0)return 0;
return 1;
}
int main()
{
char a[1000],d;
int b[1000]={0},max=-0x7fffffff,min=0x7fffffff;
cin>>a;
for(int i=0;i<strlen(a);i++)
{
d=a[i];
b[d-'a'+1]++;
}
for(int i=0;i<=27;i++)
for(int j=0;j<=27;j++)
if(b[i]<b[j])swap(b[i],b[j]);
for(int i=1;i<=27;i++)
{
if(b[i]<min&&b[i]!=0)min=b[i];
if(b[i]>max&&b[i]!=0)max=b[i];
}
if(zs(max-min))
{
cout<<"Lucky Word"<<endl;
cout<<max-min;
}
else
{
cout<<"No Answer"<<endl;
cout<<"0";
}
return 0;
}
```
我的代码:
```cpp
#include<bits/stdc++.h>
using namespace std;
int maxn=-0x7fffffff,minn=0x7fffffff;
int prime(int a)
{
if(a==0||a==1)return 0;
for(int i=2;i<=sqrt(a);i++)
if(a%i==0)return 0;
return 1;
}
int main()
{
string b;
getline(cin,b);
for(int i=0;i<=b.size();i++)
if(b[i]>='A'&&b[i]<='Z')b[i]+=32;
for(int i=0;i<=b.size();i++)
for(int j=0;j<=b.size();j++)
if(b[i]>b[j])swap(b[i],b[j]);
int t=b[0],l=1;
for(int i=1;i<=b.size();i++)
{
if(b[i]==t)
l++;
else if(b[i]!=t)
{
if(l<minn)minn=l;
if(l>maxn)maxn=l;
l=1;
t=b[i];
}
}
if(maxn-minn==1||maxn-minn==0||prime(maxn-minn)==0)cout<<"No Answer\n0";
else cout<<"Lucky Word\n"<<maxn-minn;
return 0;
}
```
by Lates @ 2018-11-10 11:10:29