P17173 「MSOI R1」回响 题解

题目大意

给你一个字符串,长度为 \(N\)。首先你需正序输出整个字符串,然后倒序输出后 \(N-1\) 字符,然后再正序输出前 \(N-2\) 个字符,然后再倒序输出后 \(N-3\) 个字符,一直这样重复,直到输出了 \(0\) 个字符。

算法思路

按题意模拟即可,其实只要懂了题意就很简单了。

#include<bits/stdc++.h>
using namespace std;
int main(){
  ios::sync_with_stdio(0);
  cin.tie(0),cout.tie(0);
  string s;
  cin>>s;
  bool f=0;int n=s.size();
  //  正序还是倒序
  int m=n;//需要输出的字符数量
  s=" "+s;
  for(int i=1;i<=n;i++){
    if(!f){//正序
      for(int i=1;i<=m;i++){
        cout<<s[i];
      }
    }else{//倒序
      for(int i=n;i>=n-m+1;i--){
        cout<<s[i];
      }
    }
    f=!f;//更新变量
    m--;
  }
}
posted @ 2026-10-17 18:54  SCX2014  阅读(2)  评论(0)    收藏  举报