我正在尝试构建一个使用两个for循环的程序,并且在调用时应该打印出来:
1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20 3 6 9 12 15 18 21 24 27 30 etc.
let mutable s:string = ""
let loopMulTable n =
for i in 1..10 do
s <- sprintf "%i " (n*i)
printf "%s " s
for j in n-1 do
s <- sprintf "%i " (n*i)
loopMulTable 2
现在我不太关心间距,只是制作正确的照片。
我不确定我的for j in n-1 do
循环有什么问题,但它给了我错误:FS0043:类型&#39; int32&#39;与seq&lt;&#39; a&gt;类型不兼容。
我可能需要进行某种类型的转换,但不确定如何。
谢谢!
找出解决方案:
let mutable s:string = ""
let loopMulTable n =
for i in 1..n do
printf "\n"
for j in 1..10 do
s <- sprintf "%5i " (i*j)
printf "%s " s
loopMulTable 10
答案 0 :(得分:2)
只是为了好玩,这是一个更惯用的版本:
[for i in 1..10 ->
List.init 10 (fun j -> (j+1)*i)]
答案 1 :(得分:0)
找出解决方案:
let mutable s:string = ""
let loopMulTable n =
for i in 1..10 do
s <- sprintf "%i " (n*i)
printf "%s " s
for j in n-1 do
s <- sprintf "%i " (n*i)
s
loopMulTable 2