【坚强2002的博客】 哈哈,一起来打印三角形

原文地址: http://www.cnblogs.com/me-sa/archive/2012/03/22/erlang-for-fun.html

刚刚看到微博上有朋友说"哎~连个for循环都没有的erlang我真想不出该怎么去打印星号三角形了。。。",哈哈,一起来Happy一下吧,一起来打印三角形!!在Shell中打印出来的效果贴文本会有错位我就贴图了;

 

先来个简单的,首先想到的是使用string:right/2的格式化方法,本来是想省事的,实际上不用更简单,我的答案如下:

复制代码
1> [begin L=lists:duplicate(X,"*"),io:format(string:right(L++"~n",X)) end|| X<-lists:seq(2,11)].

2> [begin L=lists:duplicate(X,"*"),io:format(string:right(L++"~n",X)) end|| X<-lists:reverse(lists:seq(2,11))].

3> [begin L=lists:duplicate(X,"*"),io:format(string:right(L++"~n",13-length(L)+X)) end|| X<-lists:reverse(lists:seq(1,11))].

4> [begin L=lists:duplicate(X,"*"),S=lists:duplicate(11-X," "),io:format(S++L++"~n") end|| X<-lists:reverse(lists:seq(1,11))]. 
5> [begin L=lists:duplicate(X,"*"),S=lists:duplicate(11-X," "),io:format(S++L++"~n") end|| X<-lists:seq(1,11)]. 

6> [begin L=lists:duplicate(2*X-1,"*"),S=lists:duplicate(11-X," "),io:format(S++L++"~n") end|| X<-lists:reverse(lists:seq(1,11))].
7> [begin L=lists:duplicate(2*X-1,"*"),S=lists:duplicate(11-X," "),io:format(S++L++"~n") end|| X<-lists:seq(1,11)].
复制代码

是不是不用string:right/2更简单?

抛砖引玉了,你有更简单的方法么?

 

P.S 附赠一个九九乘法表打印

复制代码
6> [begin L =lists:seq(1,9),lists:foreach(fun(N) -> io:format("~p X ~p =  ~p; ",[N,X,N*X]) end ,L),io:format("~n") end  || X<-lists:seq(1,9)].
1 X 1 =  1; 2 X 1 =  2; 3 X 1 =  3; 4 X 1 =  4; 5 X 1 =  5; 6 X 1 =  6; 7 X 1 =  7; 8 X 1 =  8; 9 X 1 =  9; 
1 X 2 =  2; 2 X 2 =  4; 3 X 2 =  6; 4 X 2 =  8; 5 X 2 =  10; 6 X 2 =  12; 7 X 2 =  14; 8 X 2 =  16; 9 X 2 =  18; 
1 X 3 =  3; 2 X 3 =  6; 3 X 3 =  9; 4 X 3 =  12; 5 X 3 =  15; 6 X 3 =  18; 7 X 3 =  21; 8 X 3 =  24; 9 X 3 =  27; 
1 X 4 =  4; 2 X 4 =  8; 3 X 4 =  12; 4 X 4 =  16; 5 X 4 =  20; 6 X 4 =  24; 7 X 4 =  28; 8 X 4 =  32; 9 X 4 =  36; 
1 X 5 =  5; 2 X 5 =  10; 3 X 5 =  15; 4 X 5 =  20; 5 X 5 =  25; 6 X 5 =  30; 7 X 5 =  35; 8 X 5 =  40; 9 X 5 =  45; 
1 X 6 =  6; 2 X 6 =  12; 3 X 6 =  18; 4 X 6 =  24; 5 X 6 =  30; 6 X 6 =  36; 7 X 6 =  42; 8 X 6 =  48; 9 X 6 =  54; 
1 X 7 =  7; 2 X 7 =  14; 3 X 7 =  21; 4 X 7 =  28; 5 X 7 =  35; 6 X 7 =  42; 7 X 7 =  49; 8 X 7 =  56; 9 X 7 =  63; 
1 X 8 =  8; 2 X 8 =  16; 3 X 8 =  24; 4 X 8 =  32; 5 X 8 =  40; 6 X 8 =  48; 7 X 8 =  56; 8 X 8 =  64; 9 X 8 =  72; 
1 X 9 =  9; 2 X 9 =  18; 3 X 9 =  27; 4 X 9 =  36; 5 X 9 =  45; 6 X 9 =  54; 7 X 9 =  63; 8 X 9 =  72; 9 X 9 =  81; 
复制代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值