方法:暴力,判断,输出

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

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


#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. 思维导图软件iMindMap怎么使用

    人人都说,思维导图记忆法实用.可是,我们应该如何使用思维导图呢?又该如何从思维小白摇身一变成为逻辑大神呢?俗话说,心急吃不了热豆腐,让我们一步一步来,慢慢接触使用思维导图吧. 小编作为"过来 ...

  2. word教程字体和段落设置

    放大/缩小字号:1.选中文字-点击"大A"或"小A" 2.同时摁着ctrl+shift+>/ctrl+shift+<即可 设置标题与正文间距:鼠标放 ...

  3. C语言编程学习者问答第一期,看看这些问题你出现过吗?

    今天给大家分享我们学习基地的小伙伴遇到的问题,以及正确回答,看看这些问题你遇到过吗~ 1.这张图片文字"第二段"后面的说法是否有问题?   回答: 这是二进制的加法,很多人会误解减 ...

  4. Jenkins忘记管理员账户密码如何解决?

    未修改初始密码时 进入Jenkins工作目录,读取初始密码文件initialAdminPassword: cat initialAdminPassword 然后在登陆页面使用该密码登陆admin用户, ...

  5. sqli-labs-master less06

    第六关与第五关步骤无区别,请参考 sqli-labs-master less05 及 Burp Suite暴力破解示例 区别:在第二步判断注入类型时发现 加单引号与不加单引号没有区别,加双引号时报错, ...

  6. 【译】理解Rust中的局部移动

    原文标题:Understanding Partial Moves in Rust 原文链接:https://whileydave.com/2020/11/30/understanding-partia ...

  7. 树莓派自动连接WiFi

    使用sudo raspi-config配置好第一个wifi 然后只需要修改一个文件sudo nano /etc/wpa_supplicant/wpa_supplicant.conf 内容如下: ctr ...

  8. vue上传视屏或者图片到七牛云

    首先下载七牛云的JavaScript-SDK npm install qiniu-js 下载完成JavaScript-SDK以后就可以上传图片信息了 <template> <div& ...

  9. 单调栈模板 POJ3250

    上次二分st表大法失败以后的又一次尝试233333 封装,封装,封装!!!!!! #include <bits/stdc++.h> using namespace std; #define ...

  10. moviepy音视频剪辑:使用fl_time报错OSError: MoviePy error: failed to read the first frame of video file

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt+moviepy音视频剪辑实战 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 在m ...