HDU - 1200 To and Fro
2024-10-08 16:29:43
题意:给定一个,其实是由一个图按蛇形输出而成的字符串,要求按从左到右,从上到下的顺序输出这个图。
分析:
1、把字符串转化成图
2、按要求输出图= =
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cctype>
#include<cmath>
#include<iostream>
#include<sstream>
#include<iterator>
#include<algorithm>
#include<string>
#include<vector>
#include<set>
#include<map>
#include<stack>
#include<deque>
#include<queue>
#include<list>
#define lowbit(x) (x & (-x))
const double eps = 1e-8;
inline int dcmp(double a, double b){
if(fabs(a - b) < eps) return 0;
return a > b ? 1 : -1;
}
typedef long long LL;
typedef unsigned long long ULL;
const int INT_INF = 0x3f3f3f3f;
const int INT_M_INF = 0x7f7f7f7f;
const LL LL_INF = 0x3f3f3f3f3f3f3f3f;
const LL LL_M_INF = 0x7f7f7f7f7f7f7f7f;
const int dr[] = {0, 0, -1, 1, -1, -1, 1, 1};
const int dc[] = {-1, 1, 0, 0, -1, 1, -1, 1};
const int MOD = 1e9 + 7;
const double pi = acos(-1.0);
const int MAXN = 200 + 10;
const int MAXT = 10000 + 10;
using namespace std;
char s[MAXN];
char pic[MAXN][MAXN];
int main(){
int c;
while(scanf("%d", &c) == 1){
if(!c) return 0;
memset(pic, ' ', sizeof pic);
scanf("%s", s);
int len = strlen(s);
int r = 0;
for(int i = 0; i < len; ++i){
if(i % c == 0) ++r;
if(r & 1){
pic[r][i - (r - 1) * c] = s[i];
}
else{
pic[r][c - (i - (r - 1) * c) - 1] = s[i];
}
}
for(int i = 0; i < c; ++i){
for(int j = 1; j <= r; ++j){
printf("%c", pic[j][i]);
}
}
printf("\n");
}
return 0;
}
最新文章
- Burp Suite使用详解一
- C#ListBox对Item进行重绘,包括颜色
- Android 照相 滤镜
- 常用API——Math对象型、Number型
- 【Java EE 学习 17 下】【数据库导出到Excel】【多条件查询方法】
- flag--命令行参数定义多标签示例
- HTTPResponse object — JSON object must be str, not &#39;bytes&#39;
- 用css画实心三角形
- PowerShell中的数学计算
- Codeforces Round #208 (Div. 2)
- ASP.NET MVC(二) 理解MVC
- Js参数RSA加密传输,jsencrypt.js的使用
- SqlServer之like、charindex、patindex 在有无索引的情况下分析
- spring boot定制Jackson ObjectMapper,为什么不生效
- WPF 10天修炼 第六天- 系统属性和常用控件
- vue_条件渲染_v-if_v-else_v-show
- Linux常用基本命令:三剑客命令之-awk模式用法(1)
- 实现调用Android手机的拍照功能
- Gifts by the List CodeForces - 681D (思维)
- 【MUI框架】学习笔记整理 Day 2