蒟蒻求助,50分c++

P1125 [NOIP2008 提高组] 笨小猴

有大佬吗?????????
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


|