代码之家  ›  专栏  ›  技术社区  ›  Cam

如何获取一个大整数作为输入并存储在内存中

  •  3
  • Cam  · 技术社区  · 14 年前

    我知道在brainfuck中对大整数执行算术,虽然有时可能相当乏味,但完全有可能。

    , ). 但我想知道的是-如果你不知道输入流什么时候会停止,你怎么能读入一个呢?我想一种方法是告诉用户在他们的数字后面加上一个特定的字符/字符串来表示结束了,但这似乎有点不方便用户使用。

    我更喜欢一个牢记可移植性的答案(特定于实现的解决方案值得关注,但不是这个问题的主要焦点)。如果没有一种完全与实现无关的方法来做到这一点,那么在大多数实现上都能正常工作,否则就会失败的方法将是下一个最好的方法。

    提前谢谢。

    2 回复  |  直到 14 年前
        1
  •  2
  •   Mau    14 年前

    大多数语言都允许您从输入中读取一行(例如C中的get(),C中的ReadLine()等等)。为什么不要求用户以一行的形式输入每个值(即用enter分隔)?

        2
  •  0
  •   Community Muhammed Neswine    7 年前

    实际上,我发布了相同的代码,用于不同的问题,目的不同。 下面的代码将继续接受您键入的任何ASCII码,除非遇到换行符。然后打印您键入的内容。

    不用担心便携性 ; 我已经用这种读取数字的策略实现了两个n位数字的加法 here .

    > +
    [ - >,>+< 
      ----- -----    ; minus 10
      [              ; if enters means it is not a \n
        +++++ +++++  ; restore prev value
        < 
      ] >>           ; moving forward
    ]
                     ; numbers are 0 0 49 0 50 0 51
                     ; for input 123
    <<<<[<<]         ; moving to the beginning
    >>               ; reaching first char
    [.>>]            ; just printing till end
    
    推荐文章