Chinaunix

标题: 两个问题 [打印本页]

作者: haokanwk    时间: 2011-03-12 16:01
标题: 两个问题
本帖最后由 haokanwk 于 2011-03-12 16:08 编辑

在《JAVA语言程序设计 基础篇》中有如下两个基础题,请改用perl实现。基本上跟语言无关。但也可以练练手!
题1:
  1.           1
  2.         2 1 2
  3.       3 2 1 2 3
  4.     4 3 2 1 2 3 4
  5.   5 4 3 2 1 2 3 4 5
  6. 6 5 4 3 2 1 2 3 4 5 6
复制代码
题2:
  1.                     1
  2.                   1 2 1
  3.                 1 2 4 2 1
  4.               1 2 4 8 4 2 1
  5.             1 2 4 816 8 4 2 1
复制代码

作者: 2gua    时间: 2011-03-12 17:49
帮做作业吧。
作者: ziyunfei    时间: 2011-03-12 17:52
perl -e 'for(1..6){printf "%@{[11+2*$_]}s","@{[reverse 1..$_]}@{[\"\",2..$_]}\n"}'

perl -e 'for(1..5){push(@a,2**($_-1));printf "%@{[11+2*$_]}s","@a@{[\"\",reverse @a[0..($_-2)]]}\n"}'
作者: haokanwk    时间: 2011-03-12 18:40
回复 2# 2gua


    已经过了 做 作业的年代,可惜!
作者: haokanwk    时间: 2011-03-12 18:42
回复 3# ziyunfei


    恩,和java代码相比,这个短多了.
作者: ttcn_cu    时间: 2011-03-12 21:46
第一个还能再短点
perl -e "for(1..6){print ' 'x((6-$_)*2),join ' ',reverse (2..$_),1..$_,\"\n\"}"
肯定有更变态的。。。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2