forサイクル出力三角形

403 ワード

forループを使用してソリッド三角形を出力し、底辺の長さはユーザーによって入力されます.
DECLARE
  LENTH INT;
BEGIN
  LENTH := 12;
  FOR LEVEL IN 1 .. TRUNC(LENTH / 2) + 1 LOOP
    DBMS_OUTPUT.PUT_LINE(LPAD(' ', TRUNC(LENTH / 2) - (LEVEL - 1), ' ') ||
                         LPAD('*', 1 + (LEVEL - 1) * 2, '*'));
  END LOOP;
END;

完璧ではなく、底辺が奇数の三角形しか印刷できないので、もっと良い方法がありますか?