这题怎么做啊???

  1. 西游记之八戒寻翠兰
    题目ID:9266
    https://www.xinyoudui.com/ac/contest/74500536700060303BCDD76/problem/6856

看了题解还是不会[大哭]

我来

不要发链接,没权限,看不了

请截图,不然其他人都看不了
@linan05062

你的代码是什么?

把代码发出来,我来改(不要跟我抢吖)!!!

回文字符串
#include<bits/stdc++.h>
using namespace std;
int main(){
bool flag=0;
char a[101];
cin>>a;
char b[101];
for(int i=1;i<=50;i++){
b[i]=a[i];
swap(b[100-i],b[i]);
}
for(int i=1;i<=101;i++){
if(a[i]!=b[i])flag++;
}
if(flag==0)cout<<“yes”;
else cout<<“no”;
}

八戒的
#include<bits/stdc++.h>
using namespace std;
int a[101];
int main(){
int n;
bool flag=0;
cin>>n;
for(int i=0;i<=n-1;i++){
cin>>a[i];
}
for(int i=0;i<=n-1;i++){
int sum=i*11+a[i]+1;
for(int j=2;j<=n-1;j++){
if(sum/j==0)flag++;
}
if(flag==0)cout<<a[i]<<" ";
flag=0;
}
if(flag>0)cout<<“No”;
}

建议格式化一下

而且有一个致命的问题:要是字符串不足100位怎么办

格式化一下

#include <bits/stdc++.h>
using namespace std;
int a[101];
int main()
{
    int n;
    bool flag = 0;
    cin >> n;
    for (int i = 0; i <= n - 1; i++)
    {
        cin >> a[i];
    }
    for (int i = 0; i <= n - 1; i++)
    {
        int sum = i * 11 + a[i] + 1;
        for (int j = 2; j <= n - 1; j++)
        {
            if (sum / j == 0)
                flag++;
        }
        if (flag == 0)
            cout << a[i] << " ";
        flag = 0;
    }
    if (flag > 0)
        cout <<"No";
}

你的代码帮你格式化好了,我来改

#include<bits/stdc++.h>
using namespace std;
int main(){
    bool flag=0;
    char a[101];
    cin>>a;
    char b[101];
    for(int i=1;i<=50;i++){
        b[i]=a[i];
        swap(b[100-i],b[i]);
    }
    for(int i=1;i<=101;i++){
        if(a[i]!=b[i])flag++;
    }
    if(flag==0)cout<<"yes";
    else cout<<"no";
}

我来改回文串

致命问题:如果a的长度不足100怎么办

所以这个应该改成for(int i=1;i<=a.size()/2;i++)for(int i=1;i<=a.length()/2;i++)

同理,这个你自己改一下

不是你这错的肥肠离谱

谢谢

o?

样例发一下,我测测