显示的数字缺少2


22

显示数字从一到一百(按升序),但数字2不应出现在序列中的任何位置。因此,例如,数字二(2)或二十三(23)不应在序列中。

这是一个示例输出,用换行符分隔数字:

1
3
4
5
6
7
8
9
10
11
13
14
15
16
17
18
19
30
31
33
34
35
36
37
38
39
40
41
43
44
45
46
47
48
49
50
51
53
54
55
56
57
58
59
60
61
63
64
65
66
67
68
69
70
71
73
74
75
76
77
78
79
80
81
83
84
85
86
87
88
89
90
91
93
94
95
96
97
98
99
100

7
我认为获胜标准是高尔夫规则吗?
路易斯·费利佩·德·耶稣·穆诺兹

4
我们的站点与Stack Exchange网络中的其他站点的工作方式不同。关于已接受的答案,请考虑乔纳森·艾伦的评论。并请添加一个获胜标准。
Arnauld

1
我可能建议以后使用沙盒在发布之前获取有关您的挑战的反馈吗?
乔·金

1
@Monolica如果答案最短,则需要标记[code-golf]这是所有可用的获胜标准标签的列表,以供将来参考。
凯文·克鲁伊森

4
@ user202729不受欢迎的限制是不允许的。
乔纳森·弗雷希

Answers:



26

出租车2399个 2391 2370 1783 1773 1706字节

意识到需要-8个字节,而不是将某个乘客永远留在Sunny Side Park,将它们从Riverview Bridge上甩掉更值得。啊,这是多么可爱的小镇。

-21个字节,我愚蠢地留下了评论。

-587字节,只需更改整个操作过程即可(显然,较短的方法是通过算术;将整数[17,27,37,47,...]除以9会得到序列,但您必须跳过20岁的你自己。)

-17字节的实现是,任何带引号的字符串都不含空格,毕竟不需要引号(感谢Jo King!)。

-67字节表示换行符是可选的。

17 is waiting at Starchild Numerology.Go to Starchild Numerology:w 1 l 2 r 1 l 1 l 2 l.Pickup a passenger going to Cyclone.Go to Cyclone:e 1 l 2 r.[B]Pickup a passenger going to Cyclone.Pickup a passenger going to Divide and Conquer.9 is waiting at Starchild Numerology.Go to Starchild Numerology:s 2 l 2 r.Pickup a passenger going to Divide and Conquer.Go to Divide and Conquer:e 1 l 2 r 3 r 2 r 1 r.Pickup a passenger going to Trunkers.Go to Trunkers:e 1 r 3 r 1 l.Pickup a passenger going to The Babelfishery.Go to The Babelfishery:e 1 r 1 r.Pickup a passenger going to Post Office.\n is waiting at Writer's Depot.Go to Writer's Depot:n 5 l 2 l.Pickup a passenger going to Post Office.Go to Post Office:n 1 r 2 r 1 l.Go to Cyclone:s 1 r 1 l 2 r.Pickup a passenger going to Addition Alley.Pickup a passenger going to Equal's Corner.177 is waiting at Starchild Numerology.Go to Starchild Numerology:s 2 l 2 r.Pickup a passenger going to Equal's Corner.Go to Equal's Corner:w 1 l.Switch to plan C if no one is waiting.Pickup a passenger going to Sunny Skies Park.100 is waiting at Starchild Numerology.Switch to plan D.[C]10 is waiting at Starchild Numerology.[D]Go to Starchild Numerology:n 1 r.Pickup a passenger going to Addition Alley.Go to Sunny Skies Park:w 1 r.Go to Addition Alley:n 1 r 1 r 1 r.Pickup a passenger going to Cyclone.Go to Cyclone:n 1 l 1 l.Pickup a passenger going to Cyclone.Pickup a passenger going to Equal's Corner.917 is waiting at Starchild Numerology.Go to Starchild Numerology:s 2 l 2 r.Pickup a passenger going to Equal's Corner.Go to Equal's Corner:w 1 l.Switch to plan E if no one is waiting.Switch to plan F.[E]Go to Go More:n 1 l.Go to Cyclone:w 1 r.Switch to plan B.[F]

在线尝试!

这个人不会很快赢得任何代码高尔夫比赛,但是我决定尝试esolang出租车。

出租车是一种有效的方式,所有编程工作都是通过在虚构的小镇Townsburg的各个站点上落客来完成的。当然,您的出租车有时会用完汽油,因此您还需要经常去加油站,并使用所获得的车费来支付费用(在这种情况下,我只需要停下来加油-在“更多”-每个循环迭代一次!)。

我使用了一些技巧来稍微减小文件大小,例如将方向改写east 1st left, 2nd righte 1 l 2 rthe在可选的位置删除单词,并使用向我的所有目的地(不一定是最短路径)的最简单的路线。

与最初提出的解决方案相比,我更讨厌这种较短的解决方案。此处的解决方案是完成任务的更通用的方法,可以在您想要的任何地方开始和结束。这里是全部。

2245字节(更一般的方式)

1 is waiting at Starchild Numerology.Go to Starchild Numerology:w 1 l 2 r 1 l 1 l 2 l.Pickup a passenger going to Cyclone.Go to Cyclone:e 1 l 2 r.[B]Pickup a passenger going to Addition Alley.Pickup a passenger going to The Babelfishery.Go to The Babelfishery:n 2 r 2 r.Pickup a passenger going to Cyclone.Go to Cyclone:n 5 l 2 l.Pickup a passenger going to Chop Suey.Go to Zoom Zoom:n.0 is waiting at Writer's Depot.Go to Writer's Depot:w.Pickup a passenger going to Narrow Path Park.Go to Narrow Path Park:n 3 r 1 l 1 r.Go to Chop Suey:e 1 r 1 l 1 r.[C]Switch to plan E if no one is waiting.Pickup a passenger going to Crime Lab.2 is waiting at Writer's Depot.Go to Writer's Depot:n 1 l 3 l.Pickup a passenger going to Crime Lab.Go to Crime Lab:n 3 r 2 r.Switch to plan D if no one is waiting.Pickup a passenger going to KonKat's.Go to Narrow Path Park:n 5 l.Pickup a passenger going to KonKat's.Go to KonKat's:e 1 r.Pickup a passenger going to Narrow Path Park.Go to Narrow Path Park:n 2 l.Go to Chop Suey:e 1 r 1 l 1 r.Switch to plan C.[D]Go to Chop Suey:n 5 r 1 l.Switch to plan C.[E]Go to Narrow Path Park:n 1 l 1 r 1 l.Pickup a passenger going to Crime Lab.0 is waiting at Writer's Depot.Go to Writer's Depot:w 1 l 1 r 2 l.1 is waiting at Starchild Numerology.Pickup a passenger going to Crime Lab.Go to Crime Lab:n 3 r 2 r.Switch to plan F if no one is waiting.Pickup a passenger going to Riverview Bridge.Go to Cyclone:n 4 l 2 l.Pickup a passenger going to Post Office.Go to Riverview Bridge:n 2 r.\n is waiting at Writer's Depot.Go to Writer's Depot:w 2 l.Pickup a passenger going to Post Office.Go to Post Office:n 1 r 2 r 1 l.Go to Starchild Numerology:s 1 r 1 l 1 l 2 l.Switch to plan G.[F]Go to Cyclone:s 1 r 1 l 2 r.Pickup a passenger going to Riverview Bridge.Go to Riverview Bridge:n 2 r.Go to Starchild Numerology:w 2 l 3 l 2 r.[G]Pickup a passenger going to Addition Alley.Go to Addition Alley:e 1 l 2 r 3 r 1 r.Pickup a passenger going to Magic Eight.101 is waiting at Starchild Numerology.Go to Starchild Numerology:n 1 l 1 l 3 l 2 r.Pickup a passenger going to Magic Eight.Go to Magic Eight:w 1 r 2 r 1 r.Switch to plan H if no one is waiting.Pickup a passenger going to Cyclone.Go to Cyclone:n 1 l 2 r.Switch to plan B.[H]

在线尝试!

而且,如果允许超级作弊,那么这比最后两个都短。

456个字节(完全作弊)

1\n3\n4\n5\n6\n7\n8\n9\n10\n11\n13\n14\n15\n16\n17\n18\n19\n30\n31\n33\n34\n35\n36\n37\n38\n39\n40\n41\n43\n44\n45\n46\n47\n48\n49\n50\n51\n53\n54\n55\n56\n57\n58\n59\n60\n61\n63\n64\n65\n66\n67\n68\n69\n70\n71\n73\n74\n75\n76\n77\n78\n79\n80\n81\n83\n84\n85\n86\n87\n88\n89\n90\n91\n93\n94\n95\n96\n97\n98\n99\n100 is waiting at Writer's Depot.Go to Writer's Depot:w 1 l 2 r 1 l 2 l.Pickup a passenger going to Post Office.Go to Post Office:n 1 r 2 r 1 l.

在线尝试!


引用那件事是有帮助的,谢谢。但是,我不同意“不必去出租车车库”的事情。是否允许退出并出现错误?我在这方面找不到很好的通用规则。
JosiahRyanW

是的,通常STDERR被忽略。相关荟萃
乔金

我的一些答案可以从中受益。
JosiahRyanW

22

Python 2,39个字节

k=7
exec"k+=10;print(k>177)*10+k/9;"*81

在线尝试!

仅使用算术运算生成不带2的数字。

该值k遵循算术级数17, 27, 37, 47, ...,该算术级数被下限除以9时得出的1,3,4,5,6,7,8,9,10,11,13,14,...计数不以2结尾。要跳过20到29,输出将增加10,超过某个阈值。


14

JavaScript(ES6),43个字节

以逗号分隔的字符串形式返回序列。

f=(n=98)=>n?f(n-=n-27?n%10?1:2:11)+[,n+3]:1

在线尝试!

为什么要这样呢?

我们可以从1迭代到100然后使用来测试每​​个数字/2/.test(n),这是一个非常简洁的声明。但是在这种情况下,我们必须使用诸如之类的东西来处理空条目(/2/.test(n)?'':...),这会增加几个字节。

例如,这将适用于45个字节

f=(n=1)=>n>99?n:(/2/.test(n)?'':[n,,])+f(n+1)

否则,如果可以接受前导逗号,则可以使用44个字节

f=(n=100)=>n?f(n-1)+(/2/.test(n)?'':[,n]):''

总而言之(直到另行证明),事实证明,跳过所有包含2n值变短了。2

已评论

f =                 // f is a recursive function taking:
(n = 98) =>         // n = counter, initialized to 98
  n ?               // if n is not equal to 0:
    f(              //   prepend the result of a recursive call:
      n -=          //     update n:
        n - 27 ?    //       if n is not equal to 27:
          n % 10 ?  //         if n is not a multiple of 10:
            1       //           subtract 1 from n
          :         //         else:
            2       //           subtract 2 from n
        :           //       else (n = 27):
          11        //         subtract 11 from n (--> 16)
    ) +             //   end of recursive call
    [, n + 3]       //   append a comma, followed by n + 3; notice that this is the value
                    //   of n *after* it was updated for the recursive call; at the first
                    //   iteration, we have: n = 98 -> updated to 97 -> n + 3 = 100
  :                 // else (n = 0):
    1               //   output the first term '1' and stop recursion

1
太酷了!
Emigna '18

1
如果可以使用逗号开头,请使用您的技巧获得41个字节
奥利弗

12

R,19个字节

grep(2,1:100,inv=T)

在线尝试!


grep(2,1:100,inv=T)为19
J.Doe

2
哈-这是我一开始尝试的方法,但v=F同时也是因为我想自己很显然,我想要而不是索引 ... the !
ngm

反转正则表达式本身要短一个字节(在这种情况下)。
ngm

不起作用,还是让2s过去。您需要的^[^2]*$是,而不是更短。
J.Doe,

4
什么,我们现在应该检查一下答案吗?
ngm


10

Perl 6、22字节

put grep {!/2/},1..100

在线尝试!

可能有更好的方法来执行代码块,但我找不到正则表达式副词来反转匹配项


删除数字周围的括号。否则就可以了。
Monolica '18 -10-2

@Monolica固定
Jo King

1
@Monolica似乎有些奇怪,您将我的答案单选为不允许打印为列表,而其他很多答案都这样做。另一方面,它不会花费我任何字节,所以无论如何
Jo King

7

PowerShell22 16字节

1..100-notmatch2

在线尝试!

-6个字节,感谢mazzy

生成的范围1100,然后翻出那些他们做的对象-notmatch的数量2-notmatch对这样的数组运行就像在数组上执行过滤器一样。每个项目都留在管道上,并且输出是隐式的。


1..100-notmatch2
mazzy

@mazzy当然,为什么我没有想到呢?谢谢!
AdmBorkBork,

6

Haskell48 33 31字节

感谢@JonathanFrech保存了15个字节,并感谢@xnor再保存了两个字节!我错过了一场大型高尔夫比赛,但没有意识到main=print$可以省略。

filter(all(/='2').show)[1..100]

在线尝试!

通过更改可以轻松扩展100。字符串化所有数字,仅保留不带数字的数字'2'


看到这个 ; 这main=print$是没有必要的。您是否测试过代码?我认为这elem'2'不是有效的语法。为什么map呢 简单地filter(not.elem '2'.show)[1..100]完成工作。
乔纳森·弗雷希

@JonathanFrech哇,错过了。:/不知道那地方去了!它在TIO中...
Khuldraeseth na'Barya

2
Haskell有notElemnot.elem的,但更短的all(/='2')
xnor



5

Java 10,67个字节

v->{for(int i=0;++i<101;)if(i%10!=2&i/10!=2)System.out.println(i);}

在线尝试。

说明:

v->{                           // Method with empty unused parameter and no return-type
  for(int i=0;++i<101;)        //  Loop `i` in the range (0, 101)
    if(i%10!=2                 //   If `i` modulo-10 is not 2
       &i/10!=2)               //   And `i` integer-divided by 10 is not 2 either
      System.out.println(i);}  //    Print `i` with a trailing newline

5

视网膜19 17字节


100*
.
$.>`¶
A`2

在线尝试!编辑:感谢@ovs,节省了2个字节,尽管最后一行现在包含换行符。说明:


100*

插入100个字符。

.
$.>`¶

用不超过该字符的字符数(包括该字符)以及换行符来替换每个字符。

A`2

删除所有包含的条目2


是否. $.>`¶工作,为第二阶段?
ovs '18 -10-3

@ovs之前我遇到了一些更复杂的事情,并转而L$避免使用换行符,所以我没有意识到我可以切换回去,谢谢。
尼尔

4

Stax,6 个字节

Ç░τ╒╜h

运行并调试

拆开包装,松开包装并进行评论,看起来像这样。

AJ  10 squared
f   output each value in [1 .. n] satisfying the following filter
 E  get array of decimal digits in number
 2#     count the number of 2s
 !  logical not

运行这个


4

Wolfram语言(Mathematica),42个字节

Print@⌈Range[1,100,10/9]~Drop~{18,26}⌉

在线尝试!

算术序列1,19/9,29/9,39/9,...以正确的速率增长,即以上限跳过所有以2结尾的数字。然后我们通过Drop对值进行ping操作来摆脱20到29 在索引18到26之间。


我不知道共识是否Print是必要的,但无论如何,谁真正在乎。
米莎·拉夫罗夫

[...]但谁真正在乎呢。-那就是精神...
Jonathan Frech '18

\[LeftCeiling]\[RightCeiling]真正算作一个字节:)
user6014 '18

@ user6014我将它们视为Unicode占用的3个字节,但它仍然比实际Ceiling命令便宜一些。
米莎·拉夫罗夫

@MishaLavrov听起来很公平!整洁的解决方案。
user6014 '18 -10-5


4

Powershell,19个字节

1..100-split'.*2.*'

该脚本显示空值而不是“内部有2的数字”,并完全解决了任务“不应在序列中的任何位置出现2”。

输出:

1


3
4
5
6
7
8
9
10
11


13
14
15
16
17
18
19




















30
31


33
34
35
36
37
38
39
40
41


43
44
45
46
47
48
49
50
51


53
54
55
56
57
58
59
60
61


63
64
65
66
67
68
69
70
71


73
74
75
76
77
78
79
80
81


83
84
85
86
87
88
89
90
91


93
94
95
96
97
98
99
100

Powerhsell(输出不包含空值),24字节

1..100-split'.*2.*'-ne''


4

Z80Golf49 48字节

00000000: 1630 2e0a 5faf f57b fe02 2818 82ff f182  .0.._..{..(.....
00000010: ff92 3cf5 7dff f1bd 280a fe02 2803 f518  ..<.}...(...(...
00000020: e63c 18fa 7b3c bd20 db3e 31ff 3dff ff76  .<..{<. .>1.=..v

在线尝试!

部件:

ld d, 30h			; ascii '0' character
ld l, 0Ah			; number 10 and ascii newline
tens:
	ld e,a			; store tens digit
	xor a			; reset ones digit to 0
	push af			; store initial ones digit 0
	ones:
		ld a,e		; get stored tens digit
		cp 2
		jr z,cont	; if tens digit==2(e.g.20-29),skip loop
		add d
		rst 38h 	; print tens digit
		pop af		; get stored ones digit
		add d
		rst 38h 	; print ones digit
		sub d
		inc a		; increment ones digit
		push af		; store ones digit
		ld a, l
		rst 38h 	; print newline
		pop af		; get stored ones digit again
		cp l
		jr z,cont	; if ones digit==10, break loop
		cp 2
		jr z,inc_again	; if ones digit==2, incr again
		repeat_loop:
		push af		; store ones digit again
		jr ones		; repeat print loop
		inc_again:
			inc a
			jr repeat_loop
		
	cont:
	ld a,e			; get stored tens digit
	inc a			; increment tens digit
	cp l
	jr nz, tens		; if tens place!=10, continue loop
ld a,31h
rst 38h				; print '1'
dec a
rst 38h				; print '0'
rst 38h				; print '0'
halt

repeat_loop跳转后保存了一个字节


4

Python 3中53个51 50 49 46字节

['2'in str(n)or print(n)for n in range(1,101)]

在线尝试!

这不是最强的语言,但是我是打高尔夫球的新手。

感谢评论者的提示!


欢迎来到PPCG!您可以通过删除之前的空格将其降低到50左右if
ElPedro

[print(n)for n in range(1,101)if"2"not in str(n)]作品。
JosiahRyanW

或者,基于Python 2答案之一:n=17;exec("print((n>177)*10+n//9);n+=10;"*81)
JosiahRyanW

@JosiahRyanW我不知道隐式打印,谢谢!
Gigaflop '18年

1
'2'in str(n)or print(n)比悟性警卫短。
乔纳森·弗雷希

4

Tcl,44字节

time {if ![regexp 2 [incr i]] {puts $i}} 100

在线尝试!


Tcl,47个字节

time {if [incr i]%10!=2&$i/10!=2 {puts $i}} 100

在线尝试!

Tcl,50个字节

time {if {2 ni [split [incr i] ""]} {puts $i}} 100

在线尝试!


Tcl,49个字节 time {if [string f 2 [incr i]]==-1 {puts $i}} 100Outgolf失败!
sergiol

你可以用更换您的测试regexp![regexp 2 [incr i]]为-3个字节
大卫

@david怎么可能没有您提出的使用正则表达式的解决方案?谢谢。
sergiol


3

Bash,31个字节

printf %d\\n {1..100}|grep -v 2

在线尝试!

感谢Digital Trauma的短循环。


1
欢迎来到PPCG!怎么样echo $i,而不是printf函数?甚至更好printf %d\\n {1..100}|grep -v 2
Digital Trauma '18

是的,对。我会更新我的答案。

我正在学习,实际上我不知道那么多谢谢。

刚刚击败我的echo {1..100}|tr ' ' \\n|grep -v 2
马克·佩里曼

-1字节(如果使用sed /2/d代替)grep -v 2
罗斯兰

3

ORK,1092字节

There is such a thing as a t
A t can w a number
A t can d a number
A t has a t which is a number

When a t is to w a number:
I have a mathematician called M
M's first operand is the number
M's second operand is 1
M is to add
The number is M's result
My t is 0
I have a number called n
n is the number
I am to d n
M's first operand is my t
M's second operand is 1
M is to compare
I have a scribe called W
If M says it's less then W is to write the number
If M says it's less then W is to write " "
M's first operand is the number
M's second operand is 100
M is to compare
If M says it's less then I am to loop

When a t is to d a number:
I have a mathematician called M
M's first operand is the number
M's second operand is 10
M is to modulo
I have a mathematician called N
N's first operand is M's result
N's second operand is 2
N is to compare
If N says it's equal then my t is 1
M is to divide
The number is M's result
M's first operand is the number
M's second operand is 0
M is to compare
If M says it's greater then I am to loop

When this program starts:
I have a t called T
T is to w 0

在线尝试!

ø bjects ř ķ OOL。输出是用空格分隔的数字列表。

这将(大约)转换为以下伪代码:

class t {
	int t;
	
	void w(number) {
		label T_W;
		mathematician M;
		M.first_operand = number;
		M.second_operand = 1;
		M.add();
		number = M.result;
		t = 0;
		int n = number;
		d(n);
		M.first_operand = t;
		M.second_operand = 1;
		M.compare();
		scribe W;
		if M.its_less { W.write(number); }
		if M.its_less { W.write(" "); }
		M.first_operand = number;
		M.second_operand = 100;
		M.compare();
		if M.its_less { goto T_W; }
	}
	
	void d(number) {
		label T_D;
		mathematician M;
		M.first_operand = number;
		M.second_operand = 10;
		M.modulo();
		mathematician N;
		N.first_operand = M.result;
		N.second_operand = 2;
		N.compare();
		if N.its_equal { t = 1; }
		M.divide();
		number = M.result;
		M.first_operand = number;
		M.second_operand = 0;
		M.compare();
		if M.its_greater { goto T_D; }
	}
}

void main() {
	t T;
	T.w(0);
}

如您所见,一切都是使用对象完成的,包括基本数学和IO函数(通过内置的数学家和划线员类)。只有整个函数才能循环,这解释了需要具有两个函数的对象来完成工作。


3

MathGolf7 6个字节

♀╒Ç{2╧

在线尝试!

说明

♀╒       Push 100 and convert to 1-based range ([1,2,...,100])
  Č{     Inverse filter by block
    2╧   Does the number contain 2?


3

PHP 7.1,40个字节

while($i++<100)strstr($i,50)||print$i._;

打印用下划线分隔的数字。运行-nr在线尝试


很好地使用PHP的古怪行为来分隔数字,大声笑
罗伯托·马尔多纳多

1
preg_filter()基于一个很有意思。(我从来没有使用过该功能🤫。)那一个会更短preg_grep()<?=join(_,preg_grep("/2/",range(1,100),1));
manatwork '18 -10-3


2

brainfuck,176个字节

---------[[-<]-[>]>[>]-[-<]<++]-[>-<+++++++++]>--[>[->]<[<<<]>>[->]>-]<<,<-[-<]>[>]<[.[->+<]++++++++++.,<]>>[>]>>->-<<<<[>>>[<<[<]<.>>[>]>.[-<+>]++++++++++.,>]<<[<]<,<]>>>>.<..

在线尝试!

绝对可能更短。这将生成数字1,3,4,5,6,7,8,90,1,3,4,5,6,7,8,9。首先,它输出第一个列表中的每个数字,然后输出第一个列表和第二个列表的每个组合,最后输出just 100

说明:

---------   Push minus 9
[           Repeat 9 times
  [-<]-[>]    Add the negative of the number to the first list
  >[>]-[-<]<  Add the negative of the number to the second list
  ++          Increment the counter
]
Tape: 255 254 253 252 251 250 249 248 247 0' 0 246 247 248 249 250 251 252 253 254
-[>-<+++++++++]>--  Push 197
Tape: 255 254 253 252 251 250 249 248 247 0 197' 246 247 248 249 250 251 252 253 254
[
  >[->]<    Subtract 197 from every element in both lists to convert to digits
  [<<<]>>
  [->]>-
]
Tape: 58 57 56 55 54 53 52 51 49 0' 49 50 51 52 53 54 55 56 57
<<,<-[-<]>[>]<  Remove the 0 and the 2 from the first list
Tape: 58 57 56 55 54 53 52 51 0 0 0' 49 50 51 52 53 54 55 56 57
[  Loop over the first list
  .[->+<]        Print digit
  ++++++++++.,<  Print a newline
]
>>[>]>>->-   Remove the 2 from the second list
<<<<      
[  Loop over first list
  >>>
  [  Loop over second list
    <<[<]<.        Print first digit
    >>[>]>.        Print second digit
    [-<+>]         Move second digit over one
    ++++++++++.,>  Print a newline
  ]
  <<[<]<,<  Remove the digit from the first list and move to the next
]
>>>>.<..  Print 100 using the second list

2

SimpleTemplate,51个字节

这是一个有趣的挑战!我的语言能做到的很好,这是一个挑战。

{@forfrom 1to100}{@if_ is notmatches"<2>"}{@echol_}

循环从1到100的所有值,输出没有2的值,并用换行符分隔。

您可以在http://sandbox.onlinephpfunctions.com/code/2c97a2b6954c29844f1079938da771d51e2e0d99上尝试

取消高尔夫:

{@for i from 1 to 100}
    {@if i is not matches "<2>"}
        {@echo i, "\n"}
    {@/}
{@/}

{@/}用于关闭{@for ...}{@if ...},但是是可选的。
编译为PHP时,它将添加所需的结束符。


如果您感到好奇,那么高尔夫球代码将生成以下PHP代码:

// {@forfrom 1to100}
// ~ optimization enabled ~ inlining the results
foreach(array(...) as $DATA['_']){

    // {@if_ is notmatches"<2>"}
    if(!(preg_match("<2>", (isset($DATA['_'])?$DATA['_']:null)))) {

        // {@echol_}
        echo implode('', $FN['array_flat']((isset($DATA['_'])?$DATA['_']:null)));echo PHP_EOL;


// AUTO-CLOSE
};};

$FN['array_flat']此代码之外定义的位置。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.