免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: yestreenstars
打印 上一主题 下一主题

[游戏娱乐] 练习题(图形打印和杨辉三角) [复制链接]

论坛徽章:
5
白羊座
日期:2014-10-28 11:23:27水瓶座
日期:2015-01-20 10:19:022015亚冠之柏斯波利斯
日期:2015-07-11 18:17:2015-16赛季CBA联赛之同曦
日期:2015-12-23 12:38:582016猴年福章徽章
日期:2016-02-18 15:30:34
11 [报告]
发表于 2014-01-21 13:32 |只看该作者
我也来看看答案

论坛徽章:
0
12 [报告]
发表于 2014-01-21 13:50 |只看该作者
第二个效率较低,又不想改了。:wink:
  1. #!/usr/bin/ksh

  2. function star
  3. {
  4.         if [ $1 -gt 1 -a \( $3 = "above" -o $3 = "middle" \) ];then
  5.                 star `expr $1 - 2` $2 "above"
  6.         fi
  7.         i=0
  8.         while [ $i -lt `expr $2 - $1 / 2` ]
  9.         do
  10.                 echo " \c"
  11.                 i=`expr $i + 1`
  12.         done
  13.         i=0
  14.         while [ $i -lt $1 ]
  15.         do
  16.                 echo "*\c"
  17.                 i=`expr $i + 1`
  18.         done
  19.         echo
  20.         if [ $1 -gt 1 -a \( $3 = "below" -o $3 = "middle" \) ];then
  21.                 star `expr $1 - 2` $2 "below"
  22.         fi
  23. }


  24. function yhvalue
  25. {
  26.         if [ $1 -eq 1 -o $2 -eq 1 -o $1 -eq $2 ];then
  27.                 return 1;
  28.         fi
  29.         typeset x y left right
  30.         x=`expr $1 - 1`
  31.         y=`expr $2 - 1`
  32.         yhvalue $x $y
  33.         left=$?
  34.         yhvalue $x `expr $y + 1 `
  35.         right=$?
  36.         return `expr $left + $right`
  37. }

  38. function yh
  39. {
  40.         if [ $1 -gt 1 ];then
  41.                 yh `expr $1 - 1` $2
  42.         fi
  43.         i=0
  44.         while [ $i -lt `expr $2 - $1` ]
  45.         do
  46.                 echo " \c"
  47.                 i=`expr $i + 1`
  48.         done
  49.         i=1
  50.         while [ $i -le $1 ]
  51.         do
  52.                 yhvalue $1 $i
  53.                 echo "$? \c"
  54.                 i=`expr $i + 1`
  55.         done
  56.         echo
  57. }

  58. if [ $# -ne 1 ];then
  59.         echo "Usage:xxx positive-odd-number"
  60.         exit 1
  61. fi

  62. if [ `expr $1 % 2` -eq 0 ];then
  63.         echo "Usage:xxx positive-odd-number"
  64.         exit 1
  65. fi

  66. star $1 `expr $1 / 2` "middle"
  67. yh $1 $1
复制代码

论坛徽章:
23
15-16赛季CBA联赛之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午马
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16赛季CBA联赛之山东
日期:2017-12-21 16:39:1915-16赛季CBA联赛之广东
日期:2016-01-19 13:33:372015亚冠之山东鲁能
日期:2015-10-13 09:39:062015亚冠之西悉尼流浪者
日期:2015-09-21 08:27:57
13 [报告]
发表于 2014-01-21 15:01 |只看该作者
本帖最后由 ly5066113 于 2014-01-21 15:01 编辑

先来第一题,用的perl:
  1. $ perl -le '$n=3;for($i=1;$i<=$n;$i++){$m=abs((int($n/2)+1-$i));print " "x$m."*"x($n-$m*2)}'
  2. *
  3. ***
  4. *
  5. $ perl -le '$n=5;for($i=1;$i<=$n;$i++){$m=abs((int($n/2)+1-$i));print " "x$m."*"x($n-$m*2)}'
  6.   *
  7. ***
  8. *****
  9. ***
  10.   *
  11. $ perl -le '$n=7;for($i=1;$i<=$n;$i++){$m=abs((int($n/2)+1-$i));print " "x$m."*"x($n-$m*2)}'
  12.    *
  13.   ***
  14. *****
  15. *******
  16. *****
  17.   ***
  18.    *
复制代码

论坛徽章:
5
未羊
日期:2014-08-04 16:15:21天秤座
日期:2014-08-13 13:52:372015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:112015亚冠之浦和红钻
日期:2015-06-29 15:30:48
14 [报告]
发表于 2014-01-21 15:04 |只看该作者
回复 10# yestreenstars


    xiandedanteng

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
15 [报告]
发表于 2014-01-21 15:06 |只看该作者
回复 15# dn833


   

论坛徽章:
5
天蝎座
日期:2014-02-13 09:58:13天秤座
日期:2014-03-22 15:14:18水瓶座
日期:2014-04-03 10:06:102015亚冠之大阪钢巴
日期:2015-07-22 12:03:51牛市纪念徽章
日期:2015-07-24 12:48:55
16 [报告]
发表于 2014-01-21 15:08 |只看该作者
看答案

论坛徽章:
50
15-16赛季CBA联赛之广夏
日期:2018-11-05 09:42:462015年亚冠纪念徽章
日期:2015-07-23 11:58:122015亚冠之广州富力
日期:2015-07-07 08:26:172015亚冠之塔什干棉农
日期:2015-06-29 09:08:072015年亚洲杯之伊朗
日期:2015-03-08 20:51:012015年迎新春徽章
日期:2015-03-04 09:58:11未羊
日期:2014-10-16 22:41:47处女座
日期:2014-10-16 15:33:33酉鸡
日期:2014-03-13 12:54:10巳蛇
日期:2014-03-10 14:39:052015亚冠之德黑兰石油
日期:2015-07-29 12:46:372015亚冠之德黑兰石油
日期:2015-08-07 12:54:11
17 [报告]
发表于 2014-01-21 15:09 |只看该作者
学习学习

论坛徽章:
9
2015亚冠之阿尔纳斯尔
日期:2015-09-10 16:21:162015亚冠之塔什干火车头
日期:2015-07-01 16:23:022015年亚洲杯之巴勒斯坦
日期:2015-04-20 17:19:46子鼠
日期:2014-11-13 09:51:26未羊
日期:2014-08-28 18:13:36技术图书徽章
日期:2014-02-21 09:30:15酉鸡
日期:2014-01-14 11:12:49天蝎座
日期:2013-12-09 17:56:53平安夜徽章
日期:2015-12-26 00:06:30
18 [报告]
发表于 2014-01-21 15:15 |只看该作者
第一题如果输入了1怎么办?

论坛徽章:
23
15-16赛季CBA联赛之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午马
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16赛季CBA联赛之山东
日期:2017-12-21 16:39:1915-16赛季CBA联赛之广东
日期:2016-01-19 13:33:372015亚冠之山东鲁能
日期:2015-10-13 09:39:062015亚冠之西悉尼流浪者
日期:2015-09-21 08:27:57
19 [报告]
发表于 2014-01-21 15:40 |只看该作者
第二题:
  1. $ awk -v n=4 'BEGIN{a[0]=1;for(i=0;i<=n;i++){for(j=i;j>0;j--)a[j]+=a[j-1];for(j=0;j<n-i;j++)printf " ";for(j=0;j<=n;j++)printf a[j]" ";print ""}}'
  2.     1     
  3.    1 1   
  4.   1 2 1   
  5. 1 3 3 1  
  6. 1 4 6 4 1
  7. $ awk -v n=3 'BEGIN{a[0]=1;for(i=0;i<=n;i++){for(j=i;j>0;j--)a[j]+=a[j-1];for(j=0;j<n-i;j++)printf " ";for(j=0;j<=n;j++)printf a[j]" ";print ""}}'
  8.    1   
  9.   1 1   
  10. 1 2 1  
  11. 1 3 3 1
复制代码

论坛徽章:
0
20 [报告]
发表于 2014-01-21 15:50 |只看该作者
  1. awk 'BEGIN{n=17;c=(n+1)/2;m=c;xi=-1;for(i=1;i<=n;i++){bx="";x="";m=(i<=c)?--m:++m;for(bi=m;bi>0;bi--)bx=bx" ";xi=(i<=c)?xi+=2:xi-=2;for(u=1;u<=xi;u+=1)x=x"*";print bx""x};print ""}'
复制代码

aa.jpg (19.54 KB, 下载次数: 48)

aa.jpg
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP