在P1125中;使用aaaab作为测试样例输入,并在洛谷IDE内使用如下代码:
#include<bits/stdc++.h>
using namespace std;
int a[26]={0,2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97};
int m[102][2],maxn=0,minn=100,ans,num;
int main(){
string x;
bool flag;
cin>>x;
for(int i=0;i<=x.size();i++){
int ii=x[i];
for(int j=1;j<=i;j++){
flag=0;
if(m[j][1]==ii){
m[j][2]++;
flag=1;
break;
}
}
if(flag==0){
num++;
m[i+1][1]=ii;
m[i+1][2]=1;
}
}
for(int i=1;i<=num;i++){
if(m[i][2]>maxn){
maxn=m[i][2];
}
if(m[i][2]<minn){
minn=m[i][2];
}
}
ans=maxn-minn;
//cout<<maxn<<' '<<minn;
for(int i=1;i<=25;i++){
if(a[i]==ans){
cout<<"Lucky Word"<<endl<<ans;
return 0;
}
}
cout<<"No Answer"<<endl<<ans;
return 0;
}
提交,
第二行会输出2(正解是3)但是如果把其中注释的//cout<<maxn<<' '<<minn;取消注释,则第二行输出正确。
所以这是为什么呢?
顺便请大佬们帮我看看这题哪里错了。