题解洛谷P1538【迎春舞会之数字舞蹈】
方法:暴力,判断,输出
本题为了更好理解建议各位可以复制样例来研究,甚至可以复制题解来测试思想,相信大家不会抄。
有什么不好的请大佬们在评论里指出,谢谢
#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【迎春舞会之数字舞蹈】的更多相关文章
- 洛谷P1538迎春舞会之数字舞蹈
题目背景 HNSDFZ的同学们为了庆祝春节,准备排练一场舞会. 题目描述 在越来越讲究合作的时代,人们注意的更多的不是个人物的舞姿,而是集体的排列. 为了配合每年的倒计时,同学们决定排出——“数字舞蹈 ...
- 洛谷 P1538 迎春舞会之数字舞蹈
题目背景 HNSDFZ的同学们为了庆祝春节,准备排练一场舞会. 题目描述 在越来越讲究合作的时代,人们注意的更多的不是个人物的舞姿,而是集体的排列. 为了配合每年的倒计时,同学们决定排出——“数字舞蹈 ...
- P1538 迎春舞会之数字舞蹈
题目背景 HNSDFZ的同学们为了庆祝春节,准备排练一场舞会. 题目描述 在越来越讲究合作的时代,人们注意的更多的不是个人物的舞姿,而是集体的排列. 为了配合每年的倒计时,同学们决定排出——“数字舞蹈 ...
- P1538迎春舞会之数字舞蹈
传送 输入输出样例:(洛咕的太丑了就不放了) (1前面有三个空格) 这真是一群闲(qian)圈(zou)的人.大号+小号提交了不下10遍终于a了 好了我们来研究一下这些数字"美观" ...
- Luogu P1538 迎春舞会之数字舞蹈 | 模拟
题目链接 大水题,暴力输出,代码应该能看吧...... #include<iostream> #include<cstdio> using namespace std; int ...
- VIJOS-P1064 迎春舞会之数字舞蹈
洛谷 P1538 迎春舞会之数字舞蹈 洛谷传送门 JDOJ 1245: VIJOS-P1064 迎春舞会之数字舞蹈 JDOJ传送门 Description 在越来越讲究合作的时代,人们注意的更多的 ...
- 【洛谷P1538】迎春舞会之数字舞蹈
迎春舞会之数字舞蹈 题目链接 一道奇怪的模拟题, 先将样例输出复制下来,观察观察 -- -- -- -- -- -- -- -- ① | | | | | | | | | | | | | | ② | | ...
- 洛谷 2953 [USACO09OPEN]牛的数字游戏Cow Digit Game
洛谷 2953 [USACO09OPEN]牛的数字游戏Cow Digit Game 题目描述 Bessie is playing a number game against Farmer John, ...
- 题解 洛谷P5018【对称二叉树】(noip2018T4)
\(noip2018\) \(T4\)题解 其实呢,我是觉得这题比\(T3\)水到不知道哪里去了 毕竟我比较菜,不大会\(dp\) 好了开始讲正事 这题其实考察的其实就是选手对D(大)F(法)S(师) ...
随机推荐
- FL Studio采样设置之时间拉伸栏
今天小编将带领大家了解一下FL Studio采样设置页面中的时间拉伸栏知识,该栏目包含了和采样音频的时间拉伸相关的设置.其右边是一个时间伸缩方式下拉列表,里面列出了很多种类的伸缩方式,自动方式是默认的 ...
- MathType中怎么打约化普朗克常数ħ
普朗克常数记为ħ,是一个物理常数,用以描述量子大小.在量子力学中占有重要的角色,马克斯·普朗克在1900年研究物体热辐射的规律时发现的.如果要打出关于约化普朗克常数ħ的公式,就需要用到专业的公式编辑器 ...
- 如何使用ABBYY FineReader 的用户模式?
在运用ABBYY FineReader 15(Windows系统)进行文档识别时,用户可能会遇到识别的文档包含一些特殊字符或者其他软件无法识别的字体等情况,容易造成识别出现乱码的结果.在这种情况下,用 ...
- u盘插电脑没反应的三大原因,以及解决方法
相信大家在使用U盘的过程中免不了会遇到这样的情况:u盘虽然与电脑连接,但是插上后却没有反应.很多小伙伴都摸不着头脑不知道到底是哪里出了错.其实大家也不用过于心急,只要找到了原因便可很快得到解决. u盘 ...
- Jmeter测试TCP协议
最近做了个项目是TCP协议传输数据,于是马上想试试JMeter测试TCP. 1首先需要下载第三方的TCP插件包ApacheJMeter_tcp.jar,下载步骤请自行百度. 2.下载完重新配置jmet ...
- Matlab 条件循环函数
条件判断 if 表达式 语句 elseif 表达式 语句 -. else 语句 end 这个与c语言不同的就是 1:要多一个end 2:还有没有括号 3:else if连在一起 for 循环 for ...
- Codeforces Round #674 (Div. 3) F. Number of Subsequences 题解(dp)
题目链接 题目大意 给你一个长为d只包含字符'a','b','c','?' 的字符串,?可以变成a,b,c字符,假如有x个?字符,那么有\(3^x\)个字符串,求所有字符串种子序列包含多少个abc子序 ...
- python sklearn库实现逻辑回归的实例代码
Sklearn简介 Scikit-learn(sklearn)是机器学习中常用的第三方模块,对常用的机器学习方法进行了封装,包括回归(Regression).降维(Dimensionality Red ...
- ERP制造模块操作与设计--开源软件诞生30
赤龙ERP制造模块讲解--第30篇 用日志记录"开源软件"的诞生 [进入地址 点亮星星]----祈盼着一个鼓励 博主开源地址: 码云:https://gitee.com/redra ...
- redis cluster可用性测试
上一节,我们用三台redis组成了cluster,现在我们停掉一台试试: 比较奇怪的是,在停掉其中一台服务器之前建立的链接仍然可以正常执行命令,当我们断开重连时,命令就都被拒绝了: 关联知识: 什么时 ...