在 Brainfuck 中多次打印文本
Print text multiple times in Brainfuck
我在 Brainfuck 中试用了这个 hello world 程序。如何多次打印文本?
这是我的代码:
+++++++[>++++++++++ <- ] >++.>++++++[>++++++++++ <- ] >+++++++++.>+++++++[>++++++++++ <- ] >++++++..>+++++++[>++++++++++ <- ] >+++++++++.>+++[>++++++++++ <-]>++. >++++++++[>++++++++++<-]>+++++++.>+++++++[>++++++++++<-] >+++++++++.>++++++++[>++++++++++ <-]>++.>+++++++[>++++++++++ <- ] >++++++.>++++++[>++++++++++ <-]>++++++++.>+++[>++++++++++<-]>++.>+++[>++++++++++<-]>+++.>+++[>++++++++++<-]>+++.
让我们想象一个 5 个字符的长单词,例如 "hello"。
因此,如果您希望它打印这 5 个字符 3 次,您可以使用如下代码:
,>,>,>,>,>+++[<<<<<.>.>.>.>.>-]
让我解释一下代码:
代码的第一部分是输入部分:
,>,>,>,>,
然后你初始化一个包含你想要打印3次的信息的变量。
>+++
然后你有一个循环回到开始,打印出这 5 个字符,然后转到变量并递减它。
[<<<<< //goes back
.>.>.>.>. //print out
>-] //decrement
如果你明白了,那么你可以很容易地改进代码,例如在其中加入更多循环,我只是想向您展示一个简单的想法。
更一般的答案如下。
假设您想将文本打印 5 次(我们称之为 计数器)
+++++ >
然后导入字符,直到给出 \n (= 10)。
----- -----[+++++ +++++ >, ----- -----]
数组现在看起来像 < counter, 0, string >。最后,我们将指针放在 counter.
<[<]<
我们通过多次打印字符串来完成。
[ while (counter) {
>>[.>] print string
<[<]<- counter--
] }
我在 Brainfuck 中试用了这个 hello world 程序。如何多次打印文本? 这是我的代码:
+++++++[>++++++++++ <- ] >++.>++++++[>++++++++++ <- ] >+++++++++.>+++++++[>++++++++++ <- ] >++++++..>+++++++[>++++++++++ <- ] >+++++++++.>+++[>++++++++++ <-]>++. >++++++++[>++++++++++<-]>+++++++.>+++++++[>++++++++++<-] >+++++++++.>++++++++[>++++++++++ <-]>++.>+++++++[>++++++++++ <- ] >++++++.>++++++[>++++++++++ <-]>++++++++.>+++[>++++++++++<-]>++.>+++[>++++++++++<-]>+++.>+++[>++++++++++<-]>+++.
让我们想象一个 5 个字符的长单词,例如 "hello"。
因此,如果您希望它打印这 5 个字符 3 次,您可以使用如下代码:
,>,>,>,>,>+++[<<<<<.>.>.>.>.>-]
让我解释一下代码:
代码的第一部分是输入部分:
,>,>,>,>,
然后你初始化一个包含你想要打印3次的信息的变量。
>+++
然后你有一个循环回到开始,打印出这 5 个字符,然后转到变量并递减它。
[<<<<< //goes back
.>.>.>.>. //print out
>-] //decrement
如果你明白了,那么你可以很容易地改进代码,例如在其中加入更多循环,我只是想向您展示一个简单的想法。
更一般的答案如下。
假设您想将文本打印 5 次(我们称之为 计数器)
+++++ >
然后导入字符,直到给出 \n (= 10)。
----- -----[+++++ +++++ >, ----- -----]
数组现在看起来像 < counter, 0, string >。最后,我们将指针放在 counter.
<[<]<
我们通过多次打印字符串来完成。
[ while (counter) {
>>[.>] print string
<[<]<- counter--
] }