杨辉三角 By 蜜獾哥.ahk
YanHuiSanJiao:=PrintYanHuiSanJiao(15,Array) Clipboard:=YanHuiSanJiao MsgBox % YanHuiSanJiao PrintYanHuiSanJiao(Count,ByRef Array){ String:="",Array:=[] if !Count Return "" Loop,% Count { Index:=A_Index,Array[Index]:=IsObject(Array[Index])?Array[Index]:[] if objLength(Array[Index-1]){ loopstring:="" Loop,% objLength(Array[Index-1])+1 { TEMPVar:=(Array[Index-1,A_Index-1]?Array[Index-1,A_Index-1]:0)+(Array[Index-1,A_Index]?Array[Index-1,A_Index]:0) Array[Index].Push(TEMPVar) loopstring.=TEMPVar . " " } String.=SubStr(Format("{: " (Count-Index)+1 "}",TEMPVar),1,-1) Trim(loopstring," ") . "`n",TEMPVar:="" }Else{ Array[Index].Push(Index) String.=Format("{: " (Count-Index)+1 "}",Index) . "`n" } } Return StrReplace(String,A_Space,A_Tab) }
杨辉三角式实现 By 僵尸.ahk
; 没有打印输出方式查看 aaa := sj(10) sj(Num){ a := [], b := [], c := [] loop % Num { If (A_Index = 1){ c.Push(1) a.Push(c) c := [] } Else If (A_Index = 2){ c.Push(1) c.Push(1) a.Push(c) b := c c := [] } Else { c.Push(1) For k,v in b { If (k > 1) { d := v + b[k-1] c.Push(d) } } c.Push(1) a.Push(c) b := c c := [] } } For i,n in a { For ii,nn in n { If (ii = 1) { nn := Format("{:" (Num-i+1) "}", nn) nn := RegExReplace(nn, " ", "`t") s .= nn } Else s .= "`t`t" nn } s .= "`n" } Return s }
声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。
评论(0)