99 chai của fizz


55

Thử thách

Viết một chương trình đưa ra lời bài hát cho 99 Chai Bia, nhưng thay vì "bia", hãy xuất "fizz" nếu số chai trên tường là bội số của 3, "buzz" nếu là bội số của 5 và "fizzbuzz" nếu là bội số của 3 và bội số của 5. Nếu số chai trên tường không phải là bội số của 3 hoặc 5, chỉ cần xuất "bia" như bình thường.

Lời bài hát

99 bottles of fizz on the wall, 99 bottles of fizz.
Take one down and pass it around, 98 bottles of beer on the wall.

98 bottles of beer on the wall, 98 bottles of beer.
Take one down and pass it around, 97 bottles of beer on the wall.

97 bottles of beer on the wall, 97 bottles of beer.
Take one down and pass it around, 96 bottles of fizz on the wall.

96 bottles of fizz on the wall, 96 bottles of fizz.
Take one down and pass it around, 95 bottles of buzz on the wall.

95 bottles of buzz on the wall, 95 bottles of buzz.
Take one down and pass it around, 94 bottles of beer on the wall.

....

3 bottles of fizz on the wall, 3 bottles of fizz.
Take one down and pass it around, 2 bottles of beer on the wall.

2 bottles of beer on the wall, 2 bottles of beer.
Take one down and pass it around, 1 bottle of beer on the wall.

1 bottle of beer on the wall, 1 bottle of beer.
Go to the store and buy some more, 99 bottles of fizz on the wall.


Đây là , vì vậy bài nộp ngắn nhất trong mỗi ngôn ngữ sẽ thắng.


30
Tôi có 95 chai fizz. Tôi lấy một cái đi. Bây giờ tôi có 94 chai bia. Logic VCL.
Okx

2
Tôi có thể có một chai fizzbeer?
Stephen

1
Có phải là một dòng mới sau chai thứ 3?
Kritixi Lithos

2
Là một dòng mới cần thiết giữa hai dòng? Trước khi chỉnh sửa của Kritixi Lithos, không có ai và bây giờ có.
dzaima

11
@Okx Vâng, bia có ga và cung cấp cho bạn một buzz ...
Draco18s

Câu trả lời:


12

Python 2 , 263 253 245 byte

i=99
x=''
while i:x+=', %s on the wall.\n\n%s on the wall, %s.\n'%(('%d bottle%s of %s'%(i,'s'*(i>1),(i%3<1)*'fizz'+(i%5<1)*'buzz'or'beer'),)*3)+'GToa kteo  otnhee  dsotwonr ea nadn dp absusy  isto maer omuonrde'[i>1::2];i-=1
print x[35:]+x[:33]

Hãy thử trực tuyến!


Điều này thật tuyệt! Bạn có thể giải thích tại sao nội suy các chuỗi là tùy chọn ngắn nhất?
sĩ523

2
Ví dụ ['ab','cd'][x]có thể được viết lại thành 'acbd'[x::2], chỉ để lưu một số byte
Rod

7

C (GCC), 276 274 byte

Cảm ơn Neil vì đã tiết kiệm hai byte!

#define w" on the wall"
#define c(i)printf("%d bottle%s of %s",i,"s"+!~-i,i%3?i%5?"beer":"buzz":i%5?"fizz":"fizzbuzz"),printf(
i;f(){for(i=99;i;c((i?:99))w".\n\n"))c(i)w", "),c(i)".\n"),printf(--i?"Take one down and pass it around, ":"Go to the store and buy some more, ");}

Ai không yêu dấu ngoặc đơn trong bản mở rộng vĩ mô?

Ung dung:

#define c(i)                               \
    printf(                                \
        "%d bottle%s of %s",               \
        i,                   /* Number  */ \
        i-1 ? "s" : "",      /* Plural  */ \
        i % 3                /* FizzBuzz*/ \
            ? i % 5                        \
                ? "beer"                   \
                : "buzz"                   \
            : i % 5                        \
                ? "fizz"                   \
                : "fizzbuzz"               \
    )

i;
f() {
    for(i = 99; i; ) {
        c(i); printf(" on the wall, ");
        c(i); printf(".\n");
        printf(
            --i
                ? "Take one down and pass it around, "
                : "Go to the store and buy some more, "
        );

        // This has been stuffed into the for increment
        c((i?:99)); printf(" on the wall.\n\n");
    }
}

Xem nó trực tiếp trên Coliru!

Phiên bản thay thế (276 byte)

#define c(i)printf("%d bottle%s of %s",i,i-1?"s":"",i%3?i%5?"beer":"buzz":i%5?"fizz":"fizzbuzz"),printf(
i,*w=" on the wall";f(){for(i=99;i;c((i?:99))"%s.\n\n",w))c(i)"%s, ",w),c(i)".\n"),printf(--i?"Take one down and pass it around, ":"Go to the store and buy some more, ");}

Điều này là siêu mát mẻ! Tôi luôn bị sốc về cách các câu trả lời C tốt có thể được xử lý bằng chuỗi.
sĩ523

Lưu một vài byte bằng cách thay đổi #define w" on the wall"thành *w=" on the wall".
MD XF

@MDXF mmh, tôi nhận được số byte chính xác. Tui bỏ lỡ điều gì vậy?
Quentin

Tôi nghĩ rằng họ có nghĩa là bạn có thể thay thế #define wvới *w=lưu byte đó. Thành thật mà nói tôi không quen thuộc với môn golf C, nhưng tôi đoán là nó tạo ra wmột char toàn cầu được định nghĩa ngầm *.
sĩ523

4
@ musicman523 vấn đề là #defined wlà một chuỗi ký tự, được tự động dán với các chuỗi ký tự chuỗi liền kề. Nếu wlà một biến, tôi phải sử dụng định dạng chuỗi thực tế bên trong printf.
Quentin

6

Röda , 273 byte

f{a=`bottle`f=` on the wall`g=`99 ${a}s of fizz`;[`$g$f, $g.
`];seq 98,1|{|b|d=`s`d=``if[b=1];c=``c=`fizz`if[b%3=0];c.=`buzz`if[b%5=0];c=`beer`if[c=``];e=`$b $a$d of $c`;[`Take one down and pass it around, $e$f.

$e$f, $e.
`]}_;[`Go to the store and buy some more, $g$f.`]}

Hãy thử trực tuyến!

Sẽ chơi gôn vào buổi sáng.


6

PHP, 242 byte

function f($k){return"$k bottle".(s[$k<2])." of ".([fizz][$k%3].[buzz][$k%5]?:beer);}$w=" on the wall";for($b=f($c=99);$c;)echo"$b$w, $b.
",--$c?"Take one down and pass it around":"Go to the store and buy some more",", ",$b=f($c?:99),"$w.

";

Hãy thử trực tuyến!

PHP, 244 byte

for($e=s,$b=fizz,$c=99;$c;)echo strtr("301245, 30124.
6, 708295.

",[" bottle",$e," of ",$c,$b," on the wall",--$c?"Take one down and pass it around":"Go to the store and buy some more",$k=$c?:99,$e=s[2>$k],$b=[fizz][$k%3].[buzz][$k%5]?:beer]);

Hãy thử trực tuyến!

sử dụng hàm strtr

PHP, 245 byte

$f=function($k)use(&$b){$b="$k bottle".(s[$k<2])." of ".([fizz][$k%3].[buzz][$k%5]?:beer);};for($w=" on the wall",$f($c=99);$c;)echo"$b$w, $b.
",--$c?"Take one down and pass it around":"Go to the store and buy some more",", {$f($c?:99)}$b$w.

";

Hãy thử trực tuyến!

sử dụng chức năng ẩn danh trong chuỗi để có được một số lượng tùy thuộc vào số nguyên

Mở rộng

$f=function($k)use(&$b){$b="$k bottle".(s[$k<2])." of ".([fizz][$k%3].[buzz][$k%5]?:beer);};
for($w=" on the wall",$f($c=99);$c;)
echo"$b$w, $b.
",--$c?"Take one down and pass it around":"Go to the store and buy some more"
,", {$f($c?:99)}$b$w.

";

1
Nếu tôi không nhầm lẫn, bạn có thể lưu 2 byte ( tổng cộng 250 byte ) : function x($n){return"$n bottle".($n-1?s:'')." of ".(($n%3?'':fizz).($n%5?'':buzz)?:beer);}$y=" on the wall";for($b=99;$b;){$c=x($b);echo"$c$y, $c.↵",--$b?"Take one down and pass it around":"Go to the store and buy some more",", ".x($b?:99)."$y.↵↵";}. :)
insertusernamehere

1
@insertusernamehere Bạn đã nhầm lẫn với một vài thay đổi, nó sẽ tiết kiệm thêm 2 byte. Cảm ơn bạn. Và bạn đã cho tôi một ý tưởng nhỏ để sử dụng usekết hợp với chức năng ẩn danh giúp tiết kiệm 1 Byte trong phiên bản này
Jörg Hülsermann

5

05AB1E , 151 146 143 byte

99LRv'¬ž“fizzÒÖ“#y35SÖÏJ‚˜1(è©y“ƒ¶€µ„‹€ƒî倕…¡, ÿÏꀂ ÿ€‰€€íÒ.“ªõ®y“ÿÏꀂ ÿ€‰€€íÒ, “D#4£ðýs…ÿÿ.}‚‚˜'Ïê'±¥:`)¦¦¬#7£ðý¨“‚œ€„€€ƒï€ƒ‚¥€ä€£, ÿ.“ª)˜»

Hãy thử trực tuyến!


4

SOGL , 136 135 134 133 131 byte

Ƨ, o▓k
"πFT+╔¡‘oW
³³q"'bμ⁸‘oH? so}5\;3\«+"ΞQv↑χāσκN⌡κYT¡‘_,S─‘oθwoX▓
MH∫}¹±{▓WkƧ.¶oH¡"sΗ─χpēGķ¶¾3Ζ^9f.⅟▒E┌Fρ_╬a→‘KΘw⁽oXH‽M}HkW">⁸‘p

Trước hết, chức năng thứ 3:

                                    ▓  name this "▓" (example input: 15)                          [15]
³³                                     Create 4 extra copies of the top thing (number of things)  [15, 15, 15, 15, 15]
  q                                    output without popping one of them                         [15, 15, 15, 15, 15]
   "...‘o                              output " bottle"                                           [15, 15, 15, 15, 15]
         H?   }                        if pop-1 [isn't 0]                                         [15, 15, 15, 15]
            so                           output "s"                                               [15, 15, 15, 15]
               5\                      push if POP divides by 5                                   [15, 15, 15, 1]
                 ;                     swap [if divides & another number copy]                    [15, 15, 1, 15]
                  3\«                  push if POP divides by 3, multiplied by 2                  [15, 15, 1, 2]
                     +                 add those together                                         [15, 15, 3]
                      "...‘            push "buzz fizz fizzbuzz beer"                             [15, 15, 3, "buzz fizz fizzbuzz beer"]
                           ...‘o       output " of " (done over here to save a byte for a quote)  [15, 15, 3, "buzz fizz fizzbuzz beer"]
                                θ      split ["buzz fizz fizzbuzz beer"] on spaces                [15, 15, 3, ["buzz","fizz","fizzbuzz","beer"]]
                                 w     get the index (1-indexed, wrapping)                        [15, 15, ["buzz","fizz","fizzbuzz","beer"], "fizzbuzz"]
                                  o    output that string                                         [15, 15, ["buzz","fizz","fizzbuzz","beer"]]
                                   X   pop the array off of the stack                             [15, 15]

Chức năng đầu tiên:

Ƨ, o▓k
     k  name this "function" "k"
Ƨ, o    output ", "
    ▓   execute the "bottleify" function

Hàm thứ hai:

"πFT+╔¡‘oW
         W  call this "W"
"πFT+╔¡‘    push " on the wall"
        o   output it

Và phần chính:

MH∫}                                     repeat 99 times, each time pushing index
    ¹                                    wrap in an array
     ±                                   reverse it
      {                                  iterate over it
       ▓                                 execute that function
        W                                execute that function
         k                               execute that function
          Ƨ.¶o                           output ".\n"
              H¡                         push if POP-1 isn't 0 (aka 1 if pop <> 1, 0 if pop == 1)
                "...‘                    push "Stake one down and pass it aroundSgo to the store and buy some more"
                     K                   push the first letter of that string
                      Θ                  split ["take one down and pass it aroundSgo to the store and buy some more" with "S"]
                       w                 gets the xth (1-indexed, wrapping) item of that array
                        ⁽o               uppercase the 1st letter and output
                          X              pop the array off
                           H‽            if pop-1 [isn't 0]
                             M           push 100
                              }          ENDIF
                               H         decrease POP
                                k        execute that function
                                 W       execute that function
                                  ">⁸‘p  output ".\n\n"

Mất một vài byte vì một lỗi Ođặt một dòng mới trước và sau nó (Và bằng cách nào đó, điều này quay trở lại V0.9 (đây là mã V0.11))


4

Java, 344 340 339 byte

(-4 byte sau khi chơi golf fizzbuzz; -1 byte loại bỏ khoảng trắng đi lạc)

interface X{static void main(String[]a){for(int i=99;i>0;System.out.printf("%s on the wall, %s.%n%s, %s on the wall.%n%n",b(i),b(i--),i<1?"Go to the store and buy some more":"Take one down and pass it around",b(i<1?99:i)));}static String b(int i){return i+" bottle"+(i>1?"s":"")+" of "+(i%3<1?"fizz":"")+(i%5<1?"buzz":i%3<1?"":"beer");}}

Hơi vô dụng (sử dụng thụt lề 1 không gian để loại bỏ cuộn ngang):

interface X {
 static void main(String[]a){
  for(int i=99;i>0;System.out.printf("%s on the wall, %s.%n%s, %s on the wall.%n%n",
   b(i),b(i--),
   i<1?"Go to the store and buy some more":"Take one down and pass it around",
   b(i<1?99:i)));
 }
 static String b(int i){
  return i+" bottle"+(i>1?"s":"")+" of "+(i%3<1?"fizz":"")+(i%5<1?"buzz":i%3<1?"":"beer");
 }
}

4

JavaScript (ES6), 316 309 byte

Đây là một chương trình đầy đủ hơn là một chức năng. Không có gì rất sáng tạo, đó chỉ là cách tiếp cận ngây thơ (do đó là bytecount!). Tôi đang sử dụng console.log()thay alert()vì vì nhiều trình duyệt bị giới hạn số lượng ký tự có thể được hiển thị bằng cách sử dụngalert() . Lưu ý rằng tất cả các khoảng trắng và dòng mới là cần thiết.

a="";for(i=99;i>0;i--){b=j=>"bottle"+(j>1?"s":"");d=a=>(a%3?"":"fizz")+(a%5?"":"buzz")||"beer");w=" on the wall";o=" of ";a+=`${i+" "+b(i)+o+d(i)+w+", "+i+" "+b(i)+o+d(i)}.
${i>1?"Take one down and pass it around, ":"Go to the store and buy some more, "}${(y=i-1?i-1:99)+" "+b(y)+o+d(y)+w}.

`;}console.log(a)

Ung dung:

let accumulator = "";
for(let i = 99; i>0; i--){
    let bottleString = j => "bottle"+(j>1?"s":""),
    drink = a =>(a%3?"":"fizz")+(a%5?"":"buzz")||"beer",
    wallString = " on the wall",
    of=" of ";
    accumulator += `${i+" "+bottleString(i)+of+drink(i)+wallString+", "+i+" "+bottleString(i)+of+drink(i)}.
${i>1?"Take one down and pass it around, ":"Go to the store and buy some more, "}${(y=i-1?i-1:99)+" "+bottleString(y)+of+drink(y)+wallString}.

`;
}

console.log(accumulator);

Đây là đoạn trích:

a="";for(i=99;i>0;i--){b=j=>"bottle"+(j>1?"s":"");d=a=>(a%3?"":"fizz")+(a%5?"":"buzz")||"beer";w=" on the wall";o=" of ";a+=`${i+" "+b(i)+o+d(i)+w+", "+i+" "+b(i)+o+d(i)}.
${i>1?"Take one down and pass it around, ":"Go to the store and buy some more, "}${(y=i-1?i-1:99)+" "+b(y)+o+d(y)+w}.

`;}console.log(a)

BTW, với câu trả lời này, tôi đã kiếm được huy hiệu đồng trong ! Không bao giờ nghĩ rằng tôi sẽ hoàn thành việc này bao giờ (mặc dù đó không phải là một thành tựu lớn.)!


dHàm của bạn không cần bất kỳ ()s nào vì ?:có liên kết đúng, nhưng bạn thực sự có thể lưu nhiều byte hơn bằng cách sử dụng d=a=>(a%3?"":"fizz")+(a%5?"":"buzz")||"beer".
Neil

3

Võng mạc , 230 byte


99$*_
_\B
Take one down and pass it around, $.'#.¶¶$.'#, $.'.¶
^
99#, 99.¶
_
Go to the store and buy some more, 99#.
#
 on the wall
1\b|(\d+)
$& bottle$#1$*s of $&$*_
\b(_{15})+\b
fizzbuzz
\b(_{5})+\b
buzz
\b(___)+\b
fizz
_+
beer

Hãy thử trực tuyến!Giải trình:


99$*_

Chèn 99 _ s.

_\B
Take one down and pass it around, $.'#.¶¶$.'#, $.'.¶

Thay đổi tất cả trừ cuối cùng _của chuỗi Take one down and pass it around, $.'#.¶¶$.'#, $.'.¶, nơi là một dòng mới và$.' là số lượng dấu gạch dưới còn lại. Điều này có hiệu quả đếm ngược từ 98 đến 1.

^
99#, 99.¶

Thêm dòng đầu tiên của câu thơ đầu tiên ở định dạng "nhỏ gọn".

_
Go to the store and buy some more, 99#.

Thêm dòng thứ hai của câu thơ cuối. Tại sao tôi cần nhảy qua các vòng để sử dụng cái _tôi không biết, nhưng $dường như khớp hai lần, vì vậy tôi không thể sử dụng nó. Đi hình.

#
 on the wall

Thay thế một chuỗi xuất hiện nhiều lần trong câu thơ.

1\b|(\d+)
$& bottle$#1$*s of $&$*_

Điều này phù hợp với các số nguyên trong các câu thơ, và hậu tố của chai thích hợp, và mở rộng trở lại đơn nguyên một lần nữa, để chuẩn bị chọn đồ uống. (Tôi lưu 1 byte trên 99s theo cách này.)

\b(_{15})+\b
fizzbuzz
\b(_{5})+\b
buzz
\b(___)+\b
fizz
_+
beer

Thay thế bội số chính xác bằng đồ uống thích hợp.


2

sed , 468 459 456 byte

s:^:99 bottles of fizz on the wall, 99 bottles of fizz.:
p
s:99:I8:g
s:fizz:XYYZ:g
x
s:^:Take one down and pass it around, I8 bottles of XYYZ on the wall.\n:
G
x
:
g
s:XXX:fizz:g
s:Y{5}:buzz:g
s:\bX*Y*Z:beer:g
s:[XYZ]::g
y:ABCDEFGHI:123456789:
s:\b0::g
/ 1 /bq
p
x
s:^::
tc
:c
s:(\S)0:\1@:g
Td
y:ABCDEFGHI:0ABCDEFGH:
:d
y:123456789@:0123456789:
s:(XXX)*(Y{5})*(Y*Z):XY\3:g
x
b
:q
s:es:e:g
aGo to the store and buy some more, 99 bottles of fizz on the wall.

Hãy thử trực tuyến!

Đòi hỏi -r cờ.

Giải trình

Không gian tổ chức nắm giữ các mô hình của hai dòng lặp đi lặp lại, với những con số biểu diễn dưới dạng [A-I][0-9](chữ số riêng biệt cho hàng chục và những người thân) và các loại thức uống đại diện như X*Y*Z, nơi Xtheo dõi -N mod 3, và Ycủa-N mod 5 .

Trên mỗi lần lặp lại tiếp theo, các số được giảm dần và Xs và Ys được cập nhật. Sau đó, giữ không gian được sao chép vào không gian mẫu, biến thành các dòng của bài hát và được in.


2

C, 349 345 344 byte

#define b(x)x^1?" bottles":" bottle"
#define g i-1?"Take one down and pass it around":"Go to the store and buy some more"
*w=" on the wall";*s(x){return x?x%15?x%5?x%3?"beer":"fizz":"buzz":"fizzbuzz":"fizz";}i=100;main(){while(--i){printf("%d%s of %s%s, %d%s of %s.\n%s, %d%s of %s%s.\n",i,b(i),s(i),w,i,b(i),s(i),g,i-1?i-1:99,b(i-1),s(i-1),w);}}

Vâng, có bạn đi. Điều đó mất một giờ.

Hãy thử trực tuyến!


2

Javascript (ES6), 236 234 233 232 byte

for(i=99;i;console.log(z()+`, ${z(_)}.
${--i?'Take one down and pass it around':'Go to the store and buy some more'}, ${z()}.

`))z=(o=' on the wall',j=i||99)=>j+` bottle${j>1?'s':_} of `+((j%3?_:'fizz')+(j%5?_='':'buzz')||'beer')+o

Bản giới thiệu

// replace console.log to avoid 50-log limit in snippets:
console.log=_=>document.write(`<pre>${_}</pre>`)

for(i=99;i;console.log(z()+`, ${z(_)}.
${--i?'Take one down and pass it around':'Go to the store and buy some more'}, ${z()}.

`))z=(o=' on the wall',j=i||99)=>j+` bottle${j>1?'s':_} of `+((j%3?_:'fizz')+(j%5?_='':'buzz')||'beer')+o

Ung dung

i = 99  // start counter at 99

z = (   // define function z which takes arguments with defaults:
   o = ' on the wall', // o = defaults to ' on the wall'
   j = i || 99         // j = defaults to value of counter i - or 99 when i == 0
) => 
    j +                 // our current j counter
    ' bottle' +
    (j > 1 ? 's' : _) + // choose 's' when we have more than 1 bottle, or blank _
    (
        (j % 3 ? _ : 'fizz') +      // if j % 3 is 0, add 'fizz', otherwise blank _
        (j % 5 ? _ = '' : 'buzz')   // if j % 5 is 0, add 'buzz', otherwise blank _
                                    // _ gets defined here since it's the first place it's used
            ||                      // if no fizz or buzz, result is a falsey empty string
        'beer'                      // replace falsey value with 'beer'
    ) +
    o                               // append o

while (i) {         // while counter is non-zero
    console.log(    // output string:
        z() +       // call z without o argument
        ', ' +
        z(_) +      // call z with blank _ for o to block ' on the wall' here
        '.\n' +
        ( --i       // decrement i, if still non-zero:
            ? 'Take one down and pass it around'
                    // otherwise:
            : 'Go to the store and buy some more'
        ) + 
        ', ' +
        z() +       // another call to z without o
        '.\n\n'
    )
}

1

Ruby , 261 byte

99.downto(1){|i|w=' on the wall'
f=->x{a='';x%3<1&&a+='fizz';x%5<1&&a+='buzz';a<?a&&a='beer';"%d bottle%s of %s"%[x,x<2?'':?s,a]}
puts [f[i]+w,f[i]+?.+$/+(i<2?'Take one down and pass it around':'Go to the store and buy some more'),f[i<2?99:i-1]+w+?.+$/*2]*', '}

Hãy thử trực tuyến!


1

shortC , 314 312 byte

Db(x)x^1?" bottles":" bottle"
Dg i-1?"Take one down and pass it around":"Go to the store and buy some more"
*w=" on the wall";*s(x){Tx?x%15?x%5?x%3?"beer":"fizz":"buzz":"fizzbuzz":"fizz";}i=100;AW--i){R"%d%s of %s%s, %d%s of %s.\n%s, %d%s of %s%s.\n",i,b(i),s(i),w,i,b(i),s(i),g,i-1?i-1:99,b(i-1),s(i-1),w

Xin lỗi không có lời giải thích, nhưng tôi hoàn toàn quên cách thức hoạt động của nó.


Bạn nên xem xét thêm một câu trả lời khác trong shortC theo logic của câu trả lời này , để xem cách chơi golf. Ngoài ra, có vẻ như trong cả hai câu trả lời của bạn, bạn chỉ sử dụng macro của mình cho g một lần, bạn sẽ có thể nội tuyến nó và lưu một vài byte
musicman523

Bạn có thể đăng phiên bản mở rộng?
Máy

@CalculatorFeline Mã C tương đương đã có ở đây , nếu đó là những gì bạn đang yêu cầu
musicman523

1

Than , 307 297 byte

A”|‽2?{:×G↗”¦αA“6«eMηOU¶¿”¦ζA“9“e▷·gqε-g}”¦βA“9B{⦃⁺Bφ=;λO”¦ωAfizz¦φAbuzz¦γAbeer¦ηA”↶C▶▶d℅d¬r·US\λTθNevT◧→GM⁸ω┦τA“M↧k↓⁺*f÷,ψZ¢▶\¿|P“№κ×υpξXoW”¦σA.¶πF⮌…¹¦¹⁰⁰«A⎇⁻ι¹αζθ¿∧¬﹪鳬﹪ι⁵A⁺φγ﹪ι³Aφ﹪ι⁵AγεAηε⁺⁺⁺⁺⁺⁺⁺IιθεβIιθεπ¿⁻ι¹A⁻ι¹λA⁹⁹λA⎇⁻λ¹αζθ¿∧¬﹪볬﹪λ⁵A⁺φγ﹪λ³Aφ﹪λ⁵AγεAηε¿⁻ι¹AτδAσδ⁺⁺⁺⁺δλθεω

Hãy thử trực tuyến!

CÓ, CHÚNG TÔI CÓ THỂ! Liên kết với phiên bản dài dòng, điều này có thể được chơi golf rất nhiều, tôi chắc chắn.


Đáng buồn là bạn đã quên thực sự liên kết đến phiên bản dài dòng, nhưng lần chạy đó có vẻ đáng ngờ ...
Neil

1

tcl, 298

proc B i {set x " bottle[expr $i>1?"s":""] of [expr $i%3?$i%5?"beer":"":"fizz"][expr $i%5?"":"buzz"]"}
set i 99
time {puts "$i[B $i][set w " on the wall"], $i[B $i].
Take one down and pass it around, [incr i -1][B $i]$w."} 98
puts "1[B $i]$w, 1[B $i].
Go to the store and buy some more, 99[B 9]$w."

bản giới thiệu

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.