C:反反复复

总时间限制: 
1000ms
内存限制: 
65536kB
描述

Mo和Larry发明了一种信息加密方法。他们首先决定好列数,然后将信息(只包含字母)从上往下依次填入各列,并在末尾补充一些随机字母使其成为一个完整的字母矩阵。例如,若信息是“There's no place like home on a snowy night”并且有5列,Mo会写成:

t o i o yh p k n ne l e a ir a h s ge c o n hs e m o tn l e w x

注意Mo只会填入字母,且全部是小写形式。在这个例子中,Mo用字母“x”填充了信息使之成为一个完整的矩阵,当然他使用任何字母都是可以的。

Mo根据这个矩阵重写信息:首先从左到右写下第一行,然后从右到左写下第二行,再从左到右写下第三行……以此左右交替地从上到下写下各行字母,形成新的字符串。这样,例子中的信息就被加密为:toioynnkpheleaigshareconhtomesnlewx。

你的工作是帮助Larry从加密后的信息中还原出原始信息(包括填充的字母)。

输入
第一行包含一个整数(范围2到20),表示使用的列数。
第二行是一个长度不超过200的字符串。
输出
一行,即原始信息。
样例输入
5
toioynnkpheleaigshareconhtomesnlewx
样例输出
theresnoplacelikehomeonasnowynightx
来源
East Central North America 2004
 1 #include <iostream>
 2 #include <stdio.h>
 3 #include <string>
 4 #include <ctype.h>
 5
 6 using namespace std;
 7
 8 int main()  {
 9     int co; //lie shu
10     scanf("%d", &co);
11
12     // cout << co << endl;
13     getchar();
14
15     char aaa[205];
16     gets(aaa);
17     // cout <<" here " << endl;
18
19     string bbb = aaa;
20     int l = bbb.size();
21
22     int row = l / co; //hang shu
23     char ma[row][co];
24     int k = 0;
25
26     for(int i = 0; i < row; i++)    {
27         if(i % 2 == 0)    {
28             for(int j = 0; j < co; j++) {
29                 ma[i][j] = bbb[k];
30                 k++;
31                 //cout << ma[i][j];
32             }
33         }
34         else{
35             for(int j = co -1; j >= 0; j--) {
36                 ma[i][j] = bbb[k];
37                 k++;
38             }
39         }
40     }
41
42     /*
43     //show
44     for(int i = 0; i < row; i++)    {
45         for(int j = 0; j < co; j++) {
46             cout << ma[i][j] << " ";
47         }
48         cout << endl;
49     }
50      */
51
52
53     for(int i = 0; i < co; i++) {
54         for(int j = 0; j < row; j++)    {
55             cout << ma[j][i];
56         }
57     }
58
59     return 0;
60
61 }

提交网址:http://bailian.openjudge.cn/practice/2039/

网上的方法有些繁琐,这里给了一个简单的

转载于:https://www.cnblogs.com/QingHuan/p/6993288.html

百练1041-反反复复-2016正式C题相关推荐

  1. 水题: OpenJudge (百练 )2807 : 两倍

    (百练 )2807 : 两倍 (http://bailian.openjudge.cn/practice/2807/) 描述 给定2到15个不同的正整数,你的任务是计算这些数里面有多少个数对满足:数对 ...

  2. 北大OJ百练——4075:矩阵旋转(C语言)

    百练的这道题很简单,通过率也达到了86%,所以我也就来贴个代码了...下面是题目: 不过还是说一下我的思路: 这道题对一个新来说,可能是会和矩阵的转置相混淆,这题并不是要我们去求矩阵的转置. 这题,我 ...

  3. 百练(十三~十六)题解

    百练(十三) Bailian2806 公共子序列[最长公共子序列+DP] - 海岛Blog - CSDN博客 Bailian3143 验证"歌德巴赫猜想"[筛选法]_海岛Blog- ...

  4. 程序设计入门经典题解(百练篇)

    参考链接:PKU百练题解(Bailian) Bailian1017 装箱问题[贪心] - 海岛Blog - CSDN博客 POJ1088 Bailian1088 滑雪[DFS+记忆化搜索]_海岛Blo ...

  5. 钓鱼问题(百练1042)

    ★问题描述: 约翰正在钓鱼.他有h个小时可用(1 <= h <= 16),并且该区域有n个湖泊(2 <= n <= 25),沿着一条单向公路可达.约翰从1号湖开始,但他可以在任 ...

  6. 百练,4103,踩方格

    百练,4103,踩方格 普通做法:(也可以找规律) #include #include//要调用memset函数,头文件 using namespace std; int visited[50][50 ...

  7. 威佐夫博弈:百练OJ:1067:取石子游戏

    威佐夫博弈(Wythoff's game):有两堆各若干个物品,两个人轮流从任一堆取至少一个或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜. 百练OJ:1067:取石子游戏 ...

  8. 百练OJ:4003:十六进制转十进制(python三行代码实现)

    题目链接:百练OJ:4003 描述 将十六进制数转换成十进制数 输入 第一行有一个整数T,表示共有T组数据 接下来T行,每一行为一个16进制无符号正整数,位数不超过8位,数中的a-f均为大写字母,数前 ...

  9. 百练OJ:2742:统计字符数

    题目链接: 百练OJ:2742:统计字符数 描述:判断一个由a-z这26个字符组成的字符串中哪个字符出现的次数最多 输入:第1行是测试数据的组数n,每组测试数据占1行,是一个由a-z这26个字符组成的 ...

最新文章

  1. Task04:青少年软件编程(Scratch)等级考试模拟卷(二级)
  2. 条件、循环、函数定义、字符串操作练习
  3. Hbase(3)——desc、alter、时间戳
  4. Bootstrap组件_进度条
  5. Parse Too complex in xxxx.cpp --------source insight
  6. linux之通过strings命令查看so里面是否包含****字符串
  7. Python使用秦九韶算法求解多项式的值
  8. Python包和__init__.py文件
  9. ios 进入后台 一段时间在进入前台 动画消失
  10. Spring 最常用的 7 大类注解,史上最强整理!
  11. 软考数据库系统工程师教材改版啦
  12. 计算机领域有哪些常见的比赛
  13. c语言中函数指针用法,C语言函数指针的用法
  14. 初学python100例-案例10 python兔子生兔子 多种不同解法 青少年python编程 少儿编程案例讲解
  15. 计算机的符号名称大全集,特殊符号大全
  16. linux ubuntu 五笔输入法,ubuntu下安装fcitx五笔输入法
  17. [bitcoin143@india.com].dharma 是什么东东
  18. Qt - QLabel设置字体颜色
  19. 欢迎报名2021年湖北省中小学电脑制作活动无人机编程赛项
  20. PHP 发送电子邮件

热门文章

  1. SiC碳化硅二极管抗浪涌电流能力缺点及应对方式
  2. 利用kvaser和Python编写监控界面(1)
  3. Druid配置好之后sql监控界面不显示sql语句的可能原因
  4. arm_neon.h引用
  5. 水星nw315r服务器无响应,水星MW315R作为从路由怎么设置? | 192路由网
  6. 硬盘开启NCQ功能全解
  7. C++ continue 语句
  8. 【深度学习】计算机视觉(一)——认识和基础(上)
  9. FPGA——1位全加器和4位全加器的实现
  10. Volume数据存储详解