codeforces 475A.Bayan Bus 解题报告

题目链接:http://codeforces.com/problemset/problem/475/A

题目意思:输入一个整数 k(0 ≤ k ≤ 34),表示participants的人数,需要在一部34座的车上为每个人安排位置。这部车除了最后面那行有 4 个位,其他行都有3个位(应该是留一些空间作为过道吧~~)。对于每一行的座位,首先是从这个人的左手边坐起的(面朝向司机)。现在要输出分配完座位后的车的状况是怎样的。

    画图题呀~~~还打算一行行输出滴,看那些装饰看到眼睛都花了(近视伤不起)。当知道可以用一个二维数组可以存储那些花俏的东西之后,不禁感叹别人的聪明呀~~然后从上到下遍历,将 '#' 用 'O' 来替代即可!数够 k 个就可以了。注意是英文大写字母 O,不是阿拉伯数字 0 ~~~又在欺负近视的孩子了= =

   

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstdlib>
 4 #include <cstring>
 5 using namespace std;
 6 
 7 const int row = 6;
 8 const int col = 30;
 9 
10 int main()
11 {
12     int k;
13     while (scanf("%d", &k) != EOF)
14     {
15         char s[row][col] = {
16                             "+------------------------+",
17                             "|#.#.#.#.#.#.#.#.#.#.#.|D|)",
18                             "|#.#.#.#.#.#.#.#.#.#.#.|.|",
19                             "|#.......................|",
20                             "|#.#.#.#.#.#.#.#.#.#.#.|.|)",
21                             "+------------------------+",
22                             };
23         for (int i = 0; i < k; i++)
24         {
25             bool flag = true;
26             for (int j = 1; j < col && flag; j += 2)
27             {
28                 for (int l = 1; l < row && flag; l++)
29                 {
30                     if (s[l][j] == '#')
31                     {
32                         s[l][j] = 'O';
33                         flag = false;
34                         break;
35                     }
36                 }
37             }
38         }
39         for (int i = 0; i < row; i++)
40             printf("%s
", s[i]);
41     }
42     return 0;
43 }
原文地址:https://www.cnblogs.com/windysai/p/4008686.html