gpt4 book ai didi

f# - 在 F# 中将整数转换为基数 4

转载 作者:行者123 更新时间:2023-12-05 06:58:43 26 4
gpt4 key购买 nike

我想将给定的整数转换为以 4 为基数的字符串。例如:在 Scala 中,

var str: String = Integer.toString(10, 4)
gives the output "22" ie 2*(4^1) + 2*(4^0) = 10

我在 F# 中很难做到这一点。感谢任何帮助

最佳答案

let intToDigits baseN value : int list =
let rec loop num digits =
let q = num / baseN
let r = num % baseN
if q = 0 then
r :: digits
else
loop q (r :: digits)

loop value []

254
|> intToDigits 16
|> List.fold (fun acc x -> acc + x.ToString("X")) ""
|> printfn "%s"

254
|> intToDigits 4
|> List.fold (fun acc x -> acc + x.ToString()) ""
|> printfn "%s"

对于 base-16 转换输出 FE,对于 base-4 转换输出 3332。请注意,ToString("X") 最多适用于 base-16,因此它也可用于 base-4 转换。

我从 Stuart Lang's bigint example 改编了这个基于 int 的解决方案(它使用 bigint.DivRem 而不是整数运算符)。

关于f# - 在 F# 中将整数转换为基数 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64547035/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com