"फ़िज़ की 99 बोतलें"


55

चुनौती

एक प्रोग्राम लिखें जो लिरिक्स को बीयर की 99 बोतलों में आउटपुट करता है, लेकिन "बीयर" के बजाय, आउटपुट "फ़िज़" यदि दीवार पर बोतलों की संख्या 3 से अधिक है, तो "बज़" यदि यह 5 से अधिक है, और "fizzbuzz" यदि यह 3 का गुणक है और 5 का गुणक है। यदि दीवार पर बोतलों की संख्या 3 या 5 से अधिक नहीं है, तो सामान्य रूप से "बीयर" का उत्पादन करें।

बोल

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.


यह , इसलिए प्रत्येक भाषा में सबसे कम सबमिशन जीतता है।


30
मेरे पास 95 बोतल फ़िज़ है। मैं एक दूर ले जाता हूं। अब मेरे पास 94 बोतल बीयर है। तर्क।
ओकेक्स

2
क्या मुझे फिजिबर की बोतल मिल सकती है?
स्टीफन

1
क्या तीसरी बोतल के बाद एक नई रेखा होनी चाहिए?
क्रिति लिथोस

2
क्या दो लाइनों के बीच एक नई रेखा की आवश्यकता है? कृति लिथोस के संपादन से पहले कोई नहीं था और अब हैं।
द्विजिमा

11
@ ऑक्स वेल, बीयर फिज़ी है और आपको बज़ देता है ...
ड्रेको 18

जवाबों:


12

पायथन 2 , 263 253 245 बाइट्स

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]

इसे ऑनलाइन आज़माएं!


यह कमाल का है! क्या आप समझा सकते हैं कि स्ट्रिंग्स को प्रक्षेपित करना सबसे छोटा विकल्प क्यों है?
संगीतज्ञ ५२३

2
उदाहरण के लिए ['ab','cd'][x]फिर से लिखा जा सकता है 'acbd'[x::2], बस कुछ बाइट्स बचाने के लिए
रॉड

7

सी (जीसीसी), 276 274 बाइट्स

दो बाइट बचाने के लिए नील को धन्यवाद !

#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, ");}

मैक्रो विस्तार में बेजोड़ कोष्ठक किसे पसंद नहीं है?

Ungolfed:

#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");
    }
}

इसे कोलिरु पर लाइव देखें!

वैकल्पिक संस्करण (276 बाइट्स)

#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, ");}

यह सुपर कूल है! मैं हमेशा इस बात से हैरान हूं कि स्ट्रिंग हेरफेर के साथ सी के उत्तर कितने अच्छे हो सकते हैं।
संगीतज्ञ ५२३

#define w" on the wall"करने के लिए बदलकर कुछ बाइट्स सहेजें *w=" on the wall"
एमडी एक्सएफ

@MDXF mmh, मुझे ठीक उसी बाइट की गिनती मिलती है। क्या मैं कुछ भूल रहा हूँ?
क्वेंटिन

मुझे लगता है कि वे मतलब आप बदल सकते हैं #define wके साथ *w=बाइट्स वहाँ बचाने के लिए। ईमानदारी से, मैं उन सभी से परिचित नहीं हूं, जो गोल्फ सी से परिचित हैं, लेकिन मेरा अनुमान है कि यह wएक अंतर्निहित परिभाषित वैश्विक चार * बनाता है ।
संगीतज्ञ ५२३

4
@ musicman523 मुद्दा यह है कि #defineडी wएक स्ट्रिंग शाब्दिक है, जो स्वचालित रूप से आसन्न स्ट्रिंग शाब्दिक के साथ चिपकाया जाता है। यदि wएक चर है, तो मुझे वास्तविक स्ट्रिंग स्वरूपण का उपयोग करना होगा printf
क्वेंटिन


6

PHP, 242 बाइट्स

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.

";

इसे ऑनलाइन आज़माएं!

PHP, 244 बाइट्स

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]);

इसे ऑनलाइन आज़माएं!

फ़ंक्शन स्ट्रेट का उपयोग करें

PHP, 245 बाइट्स

$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.

";

इसे ऑनलाइन आज़माएं!

पूर्णांक के आधार पर एक सरसिंग प्राप्त करने के लिए स्ट्रिंग में एक अनाम फ़ंक्शन का उपयोग करें

विस्तारित

$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
अगर मैंने गर्भपात नहीं किया तो आप 2 बाइट्स ( कुल 250 बाइट्स ) बचा सकते हैं 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.↵↵";}:। :)
रात

1
@insertusernamehere आपके पास कुछ बदलावों के साथ मिसकाउंट है, जो 2 बाइट्स अधिक बचाता है। धन्यवाद। और आपने मुझे useअनाम फ़ंक्शन के साथ संयोजन में उपयोग करने के लिए एक छोटा सा विचार दिया है जो इस संस्करण में 1 बाइट बचाता है
Jörg Hülsermann

5

05AB1E , 151 146 143 बाइट्स

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

इसे ऑनलाइन आज़माएं!


4

एसओजीएल , 136 135 134 133 131 बाइट्स

Ƨ, 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

सबसे पहले, 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]

पहला कार्य:

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

दूसरा कार्य:

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

और मुख्य भाग:

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"

एक बग की वजह से एक युगल बाइट्स खो दिया है जो Oइसके पहले और बाद में एक नई रेखा डालता है (और किसी तरह यह V0.9 पर वापस चला जाता है (यह V0.11 कोड है)


4

जावा, 344 340 339 बाइट्स

(-4 बाइट्स के बाद गोल्फिंग फिजबज; -1 बाइट को हटाकर आवारा व्हॉट्सएप)

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");}}

थोड़ा सा अनियंत्रित (क्षैतिज स्क्रॉलिंग को खत्म करने के लिए 1-स्थान इंडेंटेशन का उपयोग करके):

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

जावास्क्रिप्ट (ईएस 6), 316 309 बाइट्स

यह एक फंक्शन के बजाय एक फुल प्रोग्राम है। बहुत रचनात्मक कुछ भी नहीं है, यह सिर्फ अनुभवहीन दृष्टिकोण है (इसलिए बायटेकाउंट!)। मैं console.log()इसके बजाय उपयोग कर रहा हूं alert()क्योंकि कई ब्राउज़रों के पास उन वर्णों की संख्या पर सीमा होती है जिनका उपयोग करके प्रदर्शित किया जा सकता है alert()। ध्यान दें कि सभी व्हाट्सएप और न्यूलाइन्स आवश्यक हैं।

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)

अधूरा:

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);

यहाँ स्निपेट है:

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, इस जवाब के साथ, मैंने में कांस्य बैज अर्जित किया है ! कभी नहीं सोचा था कि मैं इसे कभी पूरा करूंगा (ऐसा नहीं है कि यह एक बड़ी उपलब्धि है, हालांकि)।


आपके dफ़ंक्शन को किसी भी ()s की आवश्यकता नहीं है क्योंकि ?:सही-सहयोगी है, लेकिन आप वास्तव में और भी बाइट्स का उपयोग करके बचा सकते हैं d=a=>(a%3?"":"fizz")+(a%5?"":"buzz")||"beer"
नील

3

रेटिना , 230 बाइट्स


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

इसे ऑनलाइन आज़माएं! स्पष्टीकरण:


99$*_

99 इंच सम्मिलित करता है _

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

सभी को बदलता है, लेकिन _स्ट्रिंग के लिए अंतिम Take one down and pass it around, $.'#.¶¶$.'#, $.'.¶, जहां एक नई $.'रेखा है और शेष अंडरस्कोर की गिनती है। यह प्रभावी रूप से 98 से 1 तक वापस मायने रखता है।

^
99#, 99.¶

"कॉम्पैक्ट" प्रारूप में पहली कविता की पहली पंक्ति जोड़ता है।

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

अंतिम कविता की दूसरी पंक्ति जोड़ता है। मुझे जो _पता नहीं है, उसका उपयोग करने के लिए मुझे हूप्स के माध्यम से कूदने की आवश्यकता है, लेकिन $दो बार मैच लगता है, इसलिए मैं इसका उपयोग नहीं कर सकता। जाओ पता लगाओ।

#
 on the wall

एक स्ट्रिंग कास्ट करें जो पद्य में कई बार दिखाई देती है।

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

यह छंद में पूर्णांक से मेल खाता है, और पेय का चयन करने के लिए तैयारी में उपयुक्त बोतल (ओं) को प्रत्यय देता है, और फिर से एक में वापस फैलता है। (मैं 99इस तरह से 1 बाइट बचाता हूं ।)

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

उचित पेय के साथ सटीक गुणकों को बदलें।


2

सीड , 468 459 456 बाइट्स

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.

इसे ऑनलाइन आज़माएं!

आवश्यक है -rझंडा।

व्याख्या

होल्ड स्पेस दो रिपीटिंग लाइनों का पैटर्न रखती है, जिसमें संख्याओं [A-I][0-9](दसियों और लोगों के लिए अलग-अलग अंक) के रूप में प्रतिनिधित्व किया जाता है और जिस तरह के पेय का प्रतिनिधित्व किया जाता है X*Y*Z, जहां और का Xट्रैक रहता है ।-N mod 3Y-N mod 5

प्रत्येक बाद के पुनरावृत्ति पर, संख्याएँ घट जाती हैं और Xs और Ys अद्यतन हो जाते हैं। तब होल्ड स्पेस पैटर्न स्पेस की नकल हो जाता है, गाने की लाइनों में बदल जाता है, और प्रिंट हो जाता है।


2

सी, 349 345 344 बाइट्स

#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);}}

अच्छा, तुम वहाँ जाओ। जिसमें एक घंटा लग गया।

इसे ऑनलाइन आज़माएं!


2

जावास्क्रिप्ट (ईएस 6), 236 234 233 232 बाइट्स

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

डेमो

// 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

Ungolfed

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

शॉर्टसी , 314 312 बाइट्स

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

क्षमा करें कोई स्पष्टीकरण नहीं है, लेकिन मैं पूरी तरह से भूल गया कि यह कैसे काम करता है।


आपको शॉर्टसी में एक और उत्तर जोड़ने पर विचार करना चाहिए जो इस उत्तर के तर्क का अनुसरण करता है, यह देखने के लिए कि यह कैसे गोल्फ है। इसके अलावा, यह आपके दोनों जवाबों में ऐसा लगता है कि आप केवल एक बार जी के लिए अपने मैक्रो का उपयोग करते हैं, आपको इसे इनलाइन करने में सक्षम होना चाहिए और कुछ बाइट्स बचाना चाहिए
Musicman523

क्या आप विस्तारित संस्करण पोस्ट कर सकते हैं?
कैलक्यूलेटरफल

@CalculatorFeline समतुल्य सी कोड पहले से ही यहाँ है , अगर आप यही पूछ रहे हैं
musicman523

1

चारकोल , 307 297 बाइट्स

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σδ⁺⁺⁺⁺δλθεω

इसे ऑनलाइन आज़माएं!

हाँ हम कर सकते हैं! वर्बोज़ संस्करण के लिए लिंक, यह एक बहुत गोल्फ हो सकता है, मुझे यकीन है।


अफसोस की बात है कि आप वास्तव में वर्बोज़ संस्करण से लिंक करना भूल गए हैं, लेकिन एस का वह भाग संदिग्ध लग रहा है ...
नील

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."

डेमो

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.