如何在Racket中编写一个无条件填充数字的函数?

时间:2018-05-12 18:52:21

标签: functional-programming racket

我需要编写一个消耗Nat的函数并返回一个Str,填充为三位数。

示例:

(pad3 7) => "007"
(pad3 42) => "042"
(pad3 245) => "245"
(pad3 3141592) => "314"

任何提示?

1 个答案:

答案 0 :(得分:1)

三个最重要的数字

  1. 将数字转换为字符串
    • 使用number->string
  2. 查找字符串的长度
    • 使用string-length
  3. 找到要添加的零的数量
    • 使用(max 0 (min 3 (- 3 n))),其中n是字符串的长度
  4. 使用make-string生成带零的字符串
  5. 使用string-append
  6. 预置零字符串
  7. 使用substring挑选前3个字符。
  8. 三个最不重要的数字

    1. 获取三个最低有效数字

      • 使用(remainder _ 1000)
    2. 添加1000个数字

      • 你现在有1xxx,其中xxx是你想要的输出
    3. 使用integer->string获取字符串。

    4. 使用substring删除带前缀的1。