优美三角剖分
(triangle.pas/c/cpp)
题目描述:
小X同学为了搞好和小C同学的关系,特意寻找了一些优美的图像作为礼物。
这是一些由无穷无尽三角形组成的极为优美的图形,小X同学很想实现这些极富美感的图形,但是作为一名初赛都未过的伪退役选手,他水平有限,于是这个艰巨的任务就落在你们身上了。
由于好心的出题人,数据范围n<=10。
(具体图形详见样例,每一阶图形都是由3个上一阶图形拼成的)
输入描述:
只有一行,输入一个整数为N,表示要求出N阶的图形。
输出描述;
输出描述:
输出相应的图形。
样例输入:(三合一,最终评测样例只有一行,1个N)
3
2
1
样例输出:
/\
/__\
/\ /\
/__\/__\
/\ /\
/__\ /__\
/\ /\ /\ /\
/__\/__\/__\/__\
/\
/__\
/\ /\
/__\/__\
/\
/__\
这题递归,而已不需要更多。
不过呢。
作为一个,一开始没有找到规律的人。
我认真的打表了8个图形。。。。
教大家一个很好用的打表的方法,
虽然没用,但我还是要分享。
看啊,P党。
比如:
正常是这样:
writeln(' XXXX ');
writeln('XXXXXXXXXX');
实现步奏:
先复制上一个图形:
writeln(' XXXX ');writeln('XXXXXXXXXX');然后(在下面复制一个):writeln(' XXXX ');writeln('XXXXXXXXXX');writeln(' XXXX ');第三部(打空格):writeln('XXXXXXXXXX');writeln(' XXXX ');writeln(' XXXXXXXXXX');writeln(' XXXX ');writeln('XXXXXXXXXX');第四部(一行一行复制上):writeln(' XXXX ');writeln(' XXXXXXXXXX');writeln(' XXXX ');writeln('XXXXXXXXXXXXXXXXXXXX');
然后:writeln(' XXXX ');writeln(' XXXXXXXXXX');writeln(' XXXX XXXX ');writeln('XXXXXXXXXXXXXXXXXXXX');
好了。是不是很快?谢谢;接下来是正解:var i,j,h,k,n,m:longint; a:array[1..2048]of ansistring; begin assign(input,'triangle.in'); assign(output,'triangle.out'); reset(input); rewrite(output); h:=2; a[1]:=' /\ '; a[2]:='/__\'; read(n); for i:=2 to n do begin for j:=1 to h do a[j+h]:=a[j]+a[j]; for j:=1 to h do for k:=1 to h do a[j]:=' '+a[j]+' '; h:=h*2; end; for i:=1 to h do writeln(a[i]); close(input); close(output); end.谢谢大家!!!!!!!!!!!!!!!!/鼓掌