方法:暴力,判断,输出

本题为了更好理解建议各位可以复制样例来研究,甚至可以复制题解来测试思想,相信大家不会抄。

有什么不好的请大佬们在评论里指出,谢谢


#include <bits/stdc++.h>//头文件,万能,手动滑稽
using namespace std;//开辟名称空间
int k,x,js;//x表示总行数,k表示要摆出数字的大小,js表示
string a;//第二排数字
int main()//开始
{
/*
cout<<"123456--123-- -- -- --123-- -- -- "<<endl;
cout<<"123|1234|1234|1|12|1|1234|12 1234| | | | | |12|"<<endl;
cout<<" | | | | | | | | | | | | | |"<<endl;
cout<<" -- -- -- -- -- -- 1-- "<<endl;
cout<<" | | | | | | | | | | | | |"<<endl;
cout<<" | | | | | | | | | | | | |"<<endl;
cout<<" -- -- -- -- -- -- -- "<<endl;
//这里是复制样例来看空格,为了一目了然这一切。
//发现相邻两个数字之间有两个空格,数字中间的空格是k。
//要画"-"那一行要空一个格。
//第一个数字要顶格
//注意第一个数字是1时不要中陷阱,就是认为刚开始要空3格
*/
cin>>k;//输入数字大小
cin>>a;//输入要输出的数字
x=3+k*2;//发现的规律,计算总共多少行
for(int i=1;i<=x;i++)//进入第一层循环一共要画3+k*2行
{
if(i==1 || i==2+k*1 || i==3+k*2)cout<<" ";//规律的应用,画"-"那一行要空一个格。
for(int j=0;j<a.size();j++)//进入第二层循环,用处:画每行要画的东西。
{
if(j!=0)cout<<" ";//如果不是第一个格就空一个,具体在上面的图中找的
if(i==1)//如果是第一行
{
if(a[j]=='2' ||a[j]=='3' || a[j]=='5' || a[j]=='6' || a[j]=='7' || a[j]=='8'||a[j]=='9'||a[j]=='0')//判断要画"-"的数字
{
for(int kkksc03=1;kkksc03<=k;kkksc03++)cout<<'-';//画出"-"
cout<<" ";//相邻两个数字之间有两个空格
}
else //如果不是那些数字就不画'-'
{
for(int kkksc03=1;kkksc03<=k;kkksc03++)cout<<' ';//用空格代替"-"
cout<<" ";//相邻两个数字之间有两个空格
}
} if(i!=1 && i<2+k*1)//如果在第一行和中间行之间画'|'的地方也就是数字的上半部分
{
if(a[j]=='1' || a[j]=='2' || a[j]=='3' || a[j]=='7')//判断在右边画'|'的数字
{
cout<<" ";//替代左边的'|'
for(int psb=1;psb<=k;psb++)cout<<" ";//数字中间的空格
cout<<'|';//画'|'
}
if(a[j]=='5' || a[j]=='6')//判断在左边画'|'的数字
{
cout<<'|';//画'|'
for(int psb=1;psb<=k;psb++)cout<<" "; //数字中间的空格
cout<<" ";//替代右边的'|'
}
if(a[j]=='4' || a[j]=='8' ||a[j]=='9'||a[j]=='0')//判断两边都要画'|'的数字
{
cout<<'|';//画'|'
for(int psb=1;psb<=k;psb++)cout<<" "; //数字中间的空格
cout<<'|';//画'|'
}
} if(i==2+k*1)//判断是否在中间那行
{
if(a[j]=='2' ||a[j]=='3' || a[j]=='5' || a[j]=='6' || a[j]=='4' || a[j]=='8'||a[j]=='9')//判断要画"-"的数字
{
for(int kkksc03=1;kkksc03<=k;kkksc03++)cout<<'-';//画出"-"
cout<<" ";//相邻两个数字之间有两个空格
}
else //如果不是那些数字就不画'-'
{
for(int kkksc03=1;kkksc03<=k;kkksc03++)cout<<' ';//用空格代替"-"
cout<<" ";//相邻两个数字之间有两个空格
}
} if(i>2+k*1 && i!=3+k*2)//判断是否在数字的下半部分要画'|'的那k行
{
if(a[j]=='1' || a[j]=='3' || a[j]=='4' || a[j]=='5' || a[j]=='7' ||a[j]=='9')//判断右边要画'|'的数字
{
cout<<" ";//替代左边的'|'
for(int psb=1;psb<=k;psb++)cout<<" ";//数字中间的空格
cout<<'|';//画'|'
}
if(a[j]=='2')//判断左边要画'|'的数字
{
cout<<'|';//画'|'
for(int psb=1;psb<=k;psb++)cout<<" "; //数字中间的空格
cout<<" ";//替代右边的'|'
}
if(a[j]=='6' || a[j]=='8' || a[j]=='0')//判断两边都要画'|'的数字
{
cout<<'|';//画'|'
for(int psb=1;psb<=k;psb++)cout<<" ";//数字中间的空格
cout<<'|';//画'|'
}
} if(i==3+k*2)//判断是否在最后一行那行
{
if(a[j]=='2' ||a[j]=='3' || a[j]=='5' || a[j]=='6' || a[j]=='8' || a[j]=='9'||a[j]=='0')//判断要画"-"的数字
{
for(int kkksc03=1;kkksc03<=k;kkksc03++)cout<<'-';//画出"-"
cout<<" ";//相邻两个数字之间有两个空格
}
else //如果不是那些数字就不画'-'
{
for(int kkksc03=1;kkksc03<=k;kkksc03++)cout<<' ';//用空格代替"-"
cout<<" ";//相邻两个数字之间有两个空格
}
}
}
cout<<endl; //换行,重!!!!
} return 0;//结束
}

题解洛谷P1538【迎春舞会之数字舞蹈】的更多相关文章

  1. 洛谷P1538迎春舞会之数字舞蹈

    题目背景 HNSDFZ的同学们为了庆祝春节,准备排练一场舞会. 题目描述 在越来越讲究合作的时代,人们注意的更多的不是个人物的舞姿,而是集体的排列. 为了配合每年的倒计时,同学们决定排出——“数字舞蹈 ...

  2. 洛谷 P1538 迎春舞会之数字舞蹈

    题目背景 HNSDFZ的同学们为了庆祝春节,准备排练一场舞会. 题目描述 在越来越讲究合作的时代,人们注意的更多的不是个人物的舞姿,而是集体的排列. 为了配合每年的倒计时,同学们决定排出——“数字舞蹈 ...

  3. P1538 迎春舞会之数字舞蹈

    题目背景 HNSDFZ的同学们为了庆祝春节,准备排练一场舞会. 题目描述 在越来越讲究合作的时代,人们注意的更多的不是个人物的舞姿,而是集体的排列. 为了配合每年的倒计时,同学们决定排出——“数字舞蹈 ...

  4. P1538迎春舞会之数字舞蹈

    传送 输入输出样例:(洛咕的太丑了就不放了) (1前面有三个空格) 这真是一群闲(qian)圈(zou)的人.大号+小号提交了不下10遍终于a了 好了我们来研究一下这些数字"美观" ...

  5. Luogu P1538 迎春舞会之数字舞蹈 | 模拟

    题目链接 大水题,暴力输出,代码应该能看吧...... #include<iostream> #include<cstdio> using namespace std; int ...

  6. VIJOS-P1064 迎春舞会之数字舞蹈

    洛谷 P1538 迎春舞会之数字舞蹈 洛谷传送门 JDOJ 1245: VIJOS-P1064 迎春舞会之数字舞蹈 JDOJ传送门 Description ​ 在越来越讲究合作的时代,人们注意的更多的 ...

  7. 【洛谷P1538】迎春舞会之数字舞蹈

    迎春舞会之数字舞蹈 题目链接 一道奇怪的模拟题, 先将样例输出复制下来,观察观察 -- -- -- -- -- -- -- -- ① | | | | | | | | | | | | | | ② | | ...

  8. 洛谷 2953 [USACO09OPEN]牛的数字游戏Cow Digit Game

    洛谷 2953 [USACO09OPEN]牛的数字游戏Cow Digit Game 题目描述 Bessie is playing a number game against Farmer John, ...

  9. 题解 洛谷P5018【对称二叉树】(noip2018T4)

    \(noip2018\) \(T4\)题解 其实呢,我是觉得这题比\(T3\)水到不知道哪里去了 毕竟我比较菜,不大会\(dp\) 好了开始讲正事 这题其实考察的其实就是选手对D(大)F(法)S(师) ...

随机推荐

  1. 面试官:你说你精通源码,那你知道ArrayList 源码的设计思路吗?

    Arraylist源码分析 ArrayList 我们几乎每天都会使用到,但是通常情况下我们只是知道如何去使用,至于其内部是怎么实现的我们不关心,但是有些时候面试官就喜欢问与ArrayList 的源码相 ...

  2. Mate 40系列发布 搭载华为运动健康服务带来健康数字生活

    10月30日,HUAWEI Mate 40系列国内发布会如期而至.Mate 40系列除了拥有强悍的性能.全能记录影像和突破性的交互之外,还搭载了全新升级的HMS Core,其中,Health Kit( ...

  3. 紧急发布用cherry-pick检出当前分支所有我的提交记录

    目录 背景 操作命令 cherry-pick git log Shell脚本 背景 公司接了个新项目,需在平台上增加几个新接口,问题是本来说是和平台一起迭代发布的时间提前了,但当前的代码都和其他开发人 ...

  4. JS&Swift相互交互

    加载本地HTML文件       x         override func loadView() {    super.loadView()    let conf = WKWebViewCon ...

  5. yii2.0使用bootstrap中日期插件

    Yii2框架引用bootstrap中日期插件yii2-date-picker的方法. 使用composer安装 日期插件 php composer.phar require "2amigos ...

  6. 将input 的文本框改为不可编辑状态

    <input type="text" id = "textid" name="名称" value="值" size ...

  7. 体育成绩统计/ Score

    偏水向,请部分学术控谅解 题目过长,不再描述. 很显然就是一道大模拟对吧,我在这里贡献一下我打此题的思路与过程. 或许有些奇淫巧技可以供一些没有过掉的神犇借鉴一下. 2020.11.26 中午: 昨天 ...

  8. 【模板】【P3402】可持久化并查集

    (题面来自洛谷) 题目描述 n个集合 m个操作 操作: 1 a b 合并a,b所在集合 2 k 回到第k次操作之后的状态(查询算作操作) 3 a b 询问a,b是否属于同一集合,是则输出1否则输出0 ...

  9. ④SpringCloud 实战:引入Hystrix组件,分布式系统容错

    这是SpringCloud实战系列中第4篇文章,了解前面第两篇文章更有助于更好理解本文内容: ①SpringCloud 实战:引入Eureka组件,完善服务治理 ②SpringCloud 实战:引入F ...

  10. 因为一个Docker问题,我顺手整理从安装到常用命令操作手册

    今天,自己写了一部分业务代码,是常规代码的另外一种方式,不能在公司的服务器上测试,就自己在PC端搭建了一套和公司集群一样的模板,因为公司的业务模块的测试有单独的服务器(这一块还是我很稀罕的),但是,第 ...