美文网首页
【洛谷 P1583】迎春舞会之数字舞蹈

【洛谷 P1583】迎春舞会之数字舞蹈

作者: Siding | 来源:发表于2018-10-04 16:23 被阅读0次

迎春舞会之数字舞蹈(题目链接)

方法

  • 将大小为1的数字保存在数组中
  • 输出时,将根据大小变化的位置循环输出
  • 具体实现及解释详见代码中

代码

#include <iostream>
#include <string> 
using namespace std;

/*大小为2时,每个数字的宽度为4,高为7,数字2的表示如下(.表示空格) 
    .--.
    ...|
    ...|
    .--.
    |...
    |...
    .--.
 *所以当大小为1时,宽度为3,高为5(#为数字之间的分隔符)
 *   0   1   2   3   4   5   6   7   8   9
 * # - #   # - # - #   # - # - # - # - # - #
 * #| |#  |#  |#  |#| |#|  #|  #  |#| |#| |#
 * #   #   # - # - # - # - # - #   # - # - #
 * #| |#  |#|  #  |#  |#  |#| |#  |#| |#  |#
 * # - #   # - # - #   # - # - #   # - # - #
*/
string tab[6] = {"",/*0   1   2   3   4   5   6   7   8   9*/
                    " -       -   -       -   -   -   -   -  ", //1
                    "| |   |   |   | | | |   |     | | | | | ", //2
                    "         -   -   -   -   -       -   -  ", //3
                    "| |   | |     |   |   | | |   | | |   | ", //4
                    " -       -   -       -   -       -   -  "  //5
                };

int main(){
    int k, len, t1, t2;
    string num;
    
    cin >> k >> num;                    //输入数据 
    len = num.length();                 //字符串的长度 
    for(int x = 1; x < 6; x++){         //循环输出5行 
        if(x%2 == 0){                   //若为第2行或者第4行 
            t1 = k;                     //该行的循环次数改为k次 
        }else{                          //否则 
            t1 = 1;                     //循环次数为1次 
        }
        for(int i = 0; i < t1; i++){    //循环t1次 
            for(int pos = 0; pos < len; pos++){         //循环输出每个字符 
                for(int y = 0; y < 4; y++){             //最小字符宽度为4 
                    int tmp = (num[pos] - '0') * 4 + y; //计算在tab中的位置            
                    if(tmp%4 == 1){                     //若为字符的第2个位置 
                        t2 = k;                         //该行循环k次 
                    }else{                              //否则 
                        t2 = 1;                         //循环1次 
                    }
                    for(int j = 0; j < t2; j++){        //循环t2次 
                        cout << tab[x][tmp];            //输出计算后的字符 
                    }
                }
            }
            cout << endl;                               //输出换行 
        }
    }
    
    
    return 0;
}

相关文章

  • 【洛谷 P1583】迎春舞会之数字舞蹈

    迎春舞会之数字舞蹈(题目链接) 方法 将大小为1的数字保存在数组中 输出时,将根据大小变化的位置循环输出 具体实现...

  • 乡村娃娃的舞会

    今天这节韵律舞蹈课和以往不同,孩子们不是和兔姐姐一起学习舞蹈,而是观看了一场舞会,一场与众不同的舞会。舞会上孩子们...

  • 2019-05-21 1583

    题目链接:https://www.luogu.org/problemnew/show/P1583

  • 繁华陌上 · 第六章 此时无声

    舞蹈社。 圣诞舞会的成功,让舞蹈社在校园里声名大噪,尤其是最后林小言在台上的一支独舞,让整个校园都为之倾倒。 用学...

  • 洛谷 P1043 数字游戏 题解

    思路 我们设为在区间内的答案,这个答案从内个小区间转移而来。那么转移方程就是 要注意的地方 区间类型有关动态规划的...

  • 简年14: 假面舞会

    童话镇最近要举办一个“假面舞会”,小伙伴们听说后,手足舞蹈,每一个人都开始认真地准备舞会面具。 在舞会开始的前一天...

  • 洛谷计划

    洛谷是IT生认可度较高的一个网站,有各种题目以及专业术语,是刷题的一个好地方,但是对基础要求还算挺高,因此需要在...

  • 韵律舞蹈《花开童年---新春舞会》

    今天是我们本学期第十三次参与韵律舞蹈课程,也是本学期最后一节课,题目是《花开童年,新春舞会》。哇!真的是太开心了!...

  • 什么是数字磁场能量

    什么是数字磁场能量​​ 周易数字最早发现于《周易系辞传》,“河出图,洛出书,圣人则之“。河图和洛书是易学的源头...

  • 几个高精度模板

    模板来自洛谷及Acwing:Acwing洛谷 后续增加注释以及相关代码改进 高精度加法 高精度减法 高精度乘法 高...

网友评论

      本文标题:【洛谷 P1583】迎春舞会之数字舞蹈

      本文链接:https://www.haomeiwen.com/subject/savxaftx.html