作为城市规划项目的一部分,您得到了创建一个程序或功能的任务,该程序或函数将显示城市的天际线,给出一些建筑师的意见。这个项目只是在启动阶段,所以一个非常粗略的草图就足够了。当然,最简单的方法是在ASCII艺术中简单地画出天际线。
所有的建筑物都将在河边,因此它们都是对齐的。架构师将给出每栋建筑的高度作为输入,您的代码应该显示天际线。
架构师的输入要么是整数,要么是半整数。如果这个数字是一个整数,那么建筑物将有一个平坦的屋顶,而一个半整数将导致一个倾斜的屋顶。零将只是平坦的地面。一座建筑物的墙壁相隔三个字符,而零号则是一个字符宽。相邻的建筑物共用墙。
关于产出的细节和澄清,请看下面的例子:
N = 3
___
| |
| |
|___|
N = 3.5
_
/ \
| |
| |
|___|
N = 6
___
| |
| |
| |
| |
| |
|___|
n = 0
_示例输入:3 3.5 0 2
_
___ / \
| | | ___
| | | | |
|___|___|_|___|示例输入:0 0 2.5 3 0 4 1
___
_ ___ | |
/ \| | | |
| | | | |___
__|___|___|_|___|___|路易斯维尔,0 2 1 3.5 0 4 2 4 2 4 6 1 6 0 5 1
___ ___
| | | | ___
_ ___ ___ ___| | | | | |
/ \ | | | | | | | | | | |
___ | | | |___| |___| | | | | | |
| |___| | | | | | | | |___| | | |___
_|___|___|___|_|___|___|___|___|___|___|___|___|_|___|___|使用的ASCII字符是: newline、space和/\_| (代码点10、32、47、92、95、124)。
3 3.5 2,而不是6 7 4。如果选择第二种输入格式,则输入6将产生3层楼高的建筑,7层应是3层有倾斜屋顶的建筑等。发布于 2015-11-29 14:26:02
(或者可能是不可信的)
假设有少于100个元素,并且每个元素都小于100个。s是建筑物的数量(在输入中需要)。
#include <iostream>
using namespace std;
int main()
{
float a[100];
int i,j,s;
cin>>s;
for(i=0;i<s;++i)
cin>>a[i];
for(i=100;i>=1;--i)
{
for(j=0;j<s;++j)
{
if((a[j]>=i)||(a[j-1]>=i))
cout<<"|";
else
cout<<" ";
if(i==1)
cout<<"___";
else if(a[j]+1==i)
cout<<"___";
else if(a[j]+1.5==i)
cout<<" _ ";
else if(a[j]+0.5==i)
cout<<"/ \\";
else cout<<" ";
}
if(a[s-1]>=i)
cout<<"|";
cout<<endl;
}
}https://codegolf.stackexchange.com/questions/65213
复制相似问题