如何在 F# 中打印 table 时添加填充?
How to add padding in printing table in F#?
我正在尝试打印阶乘表:
输入: 一个整数 n.
输出:来自 1 的 table 阶乘结果!到 n!.
这是我所做的:
let toBigInt (n: int) = bigint(n) // Convert an "int" to a "bigint".
// Factorial with bigint support:
let fac n =
[1..n]
|> List.map toBigInt
|> List.reduce (*)
let printFacTable n =
let listNum = [1 .. n]
let listFac = listNum |> List.map fac
let numFacPair = List.zip listNum listFac
for (k, v) in numFacPair
do printfn "%d ! = %A" k v
结果:
> printFacTable 12;;
1 ! = 1
2 ! = 2
3 ! = 6
4 ! = 24
5 ! = 120
6 ! = 720
7 ! = 5040
8 ! = 40320
9 ! = 362880
10 ! = 3628800
11 ! = 39916800
12 ! = 479001600
val it : unit = ()
结果很好。我想通过调整 !
前面的填充来垂直对齐 ! =
。假设这个程序最多接受 8 位数字作为输入。我想填充应该是:
let padding = 8 - eachNum.length
但是不知道怎么放到程序块里。任何的想法?
如 Printf
module documentation 中所述,您只需指定字段的宽度:
printfn "%8d ! = %A" k v
试试这个:
do printfn "%8d ! = %A" k v
我觉得左边的格式比较好:
for (k, v) in numFacPair
do printfn "%-2d ! = %A" k v
然后打印FacTable 12:
1 ! = 1
2 ! = 2
3 ! = 6
4 ! = 24
5 ! = 120
6 ! = 720
7 ! = 5040
8 ! = 40320
9 ! = 362880
10 ! = 3628800
11 ! = 39916800
12 ! = 479001600
Link: http://ideone.com/gJeK0B
我正在尝试打印阶乘表:
输入: 一个整数 n.
输出:来自 1 的 table 阶乘结果!到 n!.
这是我所做的:
let toBigInt (n: int) = bigint(n) // Convert an "int" to a "bigint".
// Factorial with bigint support:
let fac n =
[1..n]
|> List.map toBigInt
|> List.reduce (*)
let printFacTable n =
let listNum = [1 .. n]
let listFac = listNum |> List.map fac
let numFacPair = List.zip listNum listFac
for (k, v) in numFacPair
do printfn "%d ! = %A" k v
结果:
> printFacTable 12;;
1 ! = 1
2 ! = 2
3 ! = 6
4 ! = 24
5 ! = 120
6 ! = 720
7 ! = 5040
8 ! = 40320
9 ! = 362880
10 ! = 3628800
11 ! = 39916800
12 ! = 479001600
val it : unit = ()
结果很好。我想通过调整 !
前面的填充来垂直对齐 ! =
。假设这个程序最多接受 8 位数字作为输入。我想填充应该是:
let padding = 8 - eachNum.length
但是不知道怎么放到程序块里。任何的想法?
如 Printf
module documentation 中所述,您只需指定字段的宽度:
printfn "%8d ! = %A" k v
试试这个:
do printfn "%8d ! = %A" k v
我觉得左边的格式比较好:
for (k, v) in numFacPair
do printfn "%-2d ! = %A" k v
然后打印FacTable 12:
1 ! = 1
2 ! = 2
3 ! = 6
4 ! = 24
5 ! = 120
6 ! = 720
7 ! = 5040
8 ! = 40320
9 ! = 362880
10 ! = 3628800
11 ! = 39916800
12 ! = 479001600
Link: http://ideone.com/gJeK0B