刚刚看到微博上有朋友说"哎~连个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;
分类:
Erlang
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义