"99 বোতল ফিজ"


55

চ্যালেঞ্জ

এমন একটি প্রোগ্রাম লিখুন যা বিয়ারের 99 বোতলগুলিতে গানের আউটপুট দেয় তবে "বিয়ার" এর পরিবর্তে দেয়ালে বোতলগুলির সংখ্যা 3 এর একাধিক, "বাজ" যদি এটি 5 এর একাধিক হয়, এবং "ফিজবজ" যদি এটি 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 বোতল ফিজ আমি একটি দূরে নিতে। এখন আমার কাছে ৯৪ বোতল বিয়ার রয়েছে। যুক্তি।
Okx

2
আমার কাছে কি বোতল ফিজবিয়ার পাওয়া যাবে?
স্টিফেন

1
3 bottle বোতল পরে একটি নতুন লাইন থাকার কথা?
ক্রিটসি লিথোস

2
দুটি লাইনের মধ্যে নতুন লাইনের দরকার কি? কৃতিক্সী লিথোসের সম্পাদনার আগে এখানে কিছুই ছিল না এবং এখন রয়েছে।
ডিজাইমা

11
@Okx ওয়েল, বিয়ার হয় হিস হিস শব্দ এবং আপনি একটি buzz এই দেয় ...
Draco18s

উত্তর:


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]

এটি অনলাইন চেষ্টা করুন!


এটা সত্যিই দারুন! আপনি ব্যাখ্যা করতে পারেন কেন স্ট্রিংগুলিকে ইন্টারপোল্ট করা সবচেয়ে সংক্ষিপ্ত বিকল্প?
musicman523

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

এটি দুর্দান্ত দুর্দান্ত! স্ট্রিং ম্যানিপুলেশনের সাথে সি উত্তরের উত্তরগুলি কীভাবে হতে পারে তা নিয়ে আমি সর্বদা হতবাক।
musicman523

পরিবর্তন করে কয়েক বাইট সংরক্ষণ #define w" on the wall"করতে *w=" on the wall"
এমডি এক্সএফ 14'17

@ এমডিএক্সএফ এমএমএফ, আমি ঠিক একই বাইট গণনা পেয়েছি। আমি কিছু অনুপস্থিত করছি?
কোয়ান্টিন

আমি মনে করি তারা বোঝানো আপনি প্রতিস্থাপন করতে পারেন #define wসঙ্গে *w=বাইট সেখানে সংরক্ষণ করুন। সত্যই আমি গল্ফড সি-এর সাথে এতটা পরিচিত নই, তবে আমার ধারণা এটি wএকটি সুস্পষ্টভাবে সংজ্ঞায়িত গ্লোবাল চর * করে।
musicman523

4
@ musicman523 ইস্যুটি হ'ল #defineডি wএকটি স্ট্রিং লিটারাল যা স্বয়ংক্রিয়ভাবে সংলগ্ন স্ট্রিং লিটারেলগুলি দিয়ে পেস্ট করা হয়। যদি wকোনও পরিবর্তনশীল হয় তবে আমাকে ভিতরে ভিতরে স্ট্রিং বিন্যাস ব্যবহার করতে হবে printf
কোয়ান্টিন


6

পিএইচপি, 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.

";

এটি অনলাইন চেষ্টা করুন!

পিএইচপি, 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]);

এটি অনলাইন চেষ্টা করুন!

ফাংশন strtr ব্যবহার করুন

পিএইচপি, 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
@ অন্তর্ভুক্তকারীর নাম এখানে আপনার কয়েকটি বিট আরও বেশি 2 টি বাইট সাশ্রয় করে মিসকাউন্ট রয়েছে। ধন্যবাদ. এবং আপনি আমাকে useবেনামে ফাংশনটির সাথে একত্রে ব্যবহার করার জন্য একটি সামান্য ধারণা দিয়েছেন যা এই সংস্করণে 1 বাইট সংরক্ষণ করে
জার্গ হ্যালসারম্যান 13:58


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 এ ফিরে যায় (এটি ভি0.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

জাভাস্ক্রিপ্ট (ES6), 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)

বিটিডাব্লু, এই উত্তরটির সাথে, আমি ব্রোঞ্জের ব্যাজটি অর্জন করেছি ! কখনই ভাবিনি যে আমি এটি কখনই সম্পাদন করব (যদিও এটি একটি বড় অর্জন নয়, তবে!)!


আপনার dফাংশনটির কোনও প্রয়োজন নেই ()কারণ ?:ডান-অ্যাসোসিয়েটিভ, তবে আপনি বাস্তবে আরও বাইট ব্যবহার করে সংরক্ষণ করতে পারেন 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 3এবং Yএর ট্র্যাক করে -N mod 5

প্রতিটি পরবর্তী পুনরাবৃত্তিতে, সংখ্যা হ্রাস পায় এবং Xগুলি এবং Yগুলি আপডেট হয়। তারপরে হোল্ড স্পেসটি প্যাটার্ন স্পেসে অনুলিপি হয়ে যায়, গানের লাইনে পরিণত হয় এবং মুদ্রিত হয়।


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

জাভাস্ক্রিপ্ট (ES6), 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

দুঃখিত, এর কোনও ব্যাখ্যা নেই তবে আমি কীভাবে এটি কাজ করে তা সম্পূর্ণরূপে ভুলে গেছি।


আপনার শর্টসিতে অন্য একটি উত্তর যুক্ত করার কথা বিবেচনা করা উচিত যা এই উত্তরটির যুক্তি অনুসরণ করে , এটি কীভাবে গল্ফ করে তা দেখতে। এছাড়াও, আপনার উভয় জবাবগুলির মধ্যে দেখে মনে হচ্ছে আপনি একবার জি এর জন্য আপনার ম্যাক্রোটি ব্যবহার করেন, আপনি এটি ইনলাইন করতে এবং কয়েকটি বাইট সংরক্ষণ করতে সক্ষম হবেন
সঙ্গীতজ্ঞ 523

আপনি কি প্রসারিত সংস্করণটি পোস্ট করতে পারেন?
ক্যালকুলেটরফলাইন

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

ডেমো

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.