优美三角剖分

优美三角剖分

(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.
谢谢大家!!!!!!!!!!!!!!!!
/鼓掌
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值