Конкурс Популярности - 99 Бутылок Пива

  • Автор темы Oldman_
  • Обновлено
  • 19, Oct 2024
  • #1
Закрыто. Этот вопрос должен быть более целенаправленным. В настоящее время он не принимает ответы. Закрыт 6 лет назад.

Заблокировано

. Этот вопрос и ответы на него заблокированы, поскольку вопрос не по теме, но имеет историческое значение. В настоящее время он не принимает новые ответы или взаимодействия.

 99 bottles of beer on the wall, 99 bottles of beer.
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 beer on the wall.

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

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

....

3 bottles of beer on the wall, 3 bottles of beer.
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 beer on the wall.
 

Воссоздайте «99 бутылок пива на стене».

Желаемый результат таков:

Oldman_


Рег
06 Feb, 2012

Тем
67

Постов
196

Баллов
541
  • 26, Oct 2024
  • #2

Мозг*** (1509)

Я решил, что смогу превзойти этот ответьте, не только сделав 9 пивных бутылок вместо 1, но и используя в коде всего 7 разных символов.

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

$a=

"cpuu

\bmft p

\bg cff

\bs";$b

="po ui

\bf xbm

\bm";$c="

Ypv ublf p

\bof epxo qb

\btt ju bspvoe";

$a =~ s/\n//;$a =~

s/\s+/ /g; $b   =~

s/\n// ;  $b    =~

s/\s+/ /g;$c    =~

s/\n// ;  $c    =~

s/\s+/ /g;$a    =~

y/b-z/a-z/;$b   =~

tr/b-z/a-z/;$c  =~

tr/b-z/a-z/ ; for(

$d=100;$d>0;$d--){

print"$d $a $b $d"

;print" $a,\n$c, "

;print($d-1);print

" $a $b.\n";} $x =

"cjc"; $y="dobbz";

$z="com";print"\n"

;print "- $x\@$y."

;print"$z \n\n";

Однако я должен признать, что в коде есть ошибка (может быть, вы сможете придумать, как ее исправить для меня?), и последнее предложение не печатается,

 
 WITH

bottles AS (

SELECT LEVEL - 1 AS bottle 

FROM dual

CONNECT BY LEVEL <= &number_of_bottles + 1

),

fragments AS (

SELECT

'no more ' AS none,

'bottles of beer' AS supply,

' on the wall' AS wall,

'Take one down and pass it around' AS drink,

'Go to the store and buy some more' AS refill,

CHR(13) || CHR(10) AS newline

FROM dual

),

combined AS (

SELECT

b.bottle,

DECODE(

b.bottle, 

1, b.bottle || ' ' || REPLACE(f.supply, 's'),

0, f.none || f.supply,  

b.bottle || ' ' || f.supply

) AS supply

FROM bottles b

CROSS JOIN fragments f

),

two_lines AS (

SELECT LEVEL AS line

FROM dual

CONNECT BY LEVEL <= 2

)
SELECT

CASE l.line

WHEN 1 THEN REPLACE(c1.supply, 'n', 'N') || f.wall || ', ' || c1.supply || '.'

WHEN 2 THEN DECODE(b.bottle, 0, f.refill, f.drink) || ', '  || c2.supply || f.wall || '.' 

END AS song 
FROM bottles b
LEFT JOIN combined c1 ON (c1.bottle = b.bottle)
LEFT JOIN combined c2 ON (c2.bottle = DECODE(b.bottle - 1, -1, &number_of_bottles, b.bottle - 1))
CROSS JOIN two_lines l
CROSS JOIN fragments f
ORDER BY

b.bottle DESC,

l.line;
 
But other than that, it functions just as well as any of the programs made in those sissy programming languages everyone else seems to like to use.

 

Cps5


Рег
05 Dec, 2008

Тем
85

Постов
187

Баллов
622
  • 26, Oct 2024
  • #3

Фунситон

Я написал это буквально на днях. :) (Скриншоты: начинать и заканчивать)

Поскольку в StackExchange это выглядит некрасиво из-за дополнительного межстрочного интервала, рассмотрите возможность запуска следующего кода в консоли JavaScript вашего браузера, чтобы исправить это: b="%d bottle%s of beer" w=' on the wall' 99.downto(1){|z|s=b%[z,z>1?'s':''] puts s+w+", "+s+". "+(z>1?"Take one down and pass it around, "+b%[z-1,z>2?'s':'']+w+". " :'Go to the store and buy some more, '+b%[99,'s']+w+".")}

$a=" bottles of beer";$b=str_replace("s","",$a);$c=" on the wall";for($i=98;$i;)echo($j=$i+1).$a.$c.", ".$j.$a.". Take one down and pass it around, ".$i.($i-->1?$a:$b).$c.". ";echo"1".$b.$c.", 1".$b.". Go to the store and buy some more, 99".$a.$c."."; ||answer||

Перл (410 символов)

Уже есть сайт, посвященный этому конкурсу:

Одно из решений Perl было бы очень и очень сложно реализовать.

бит с точки зрения творчества, он гласит:

package main import "fmt" func main(){b,i,e,r:=fmt.Println,99,"bottles","of beer on the wall" for i>0{b(i,e,r+",",i,e,r[:7]+".") if i--;i<2{e=e[:6]} if i>0{b("Take one down and pass it around,",i,e,r+`. `)}} b("Go to the store and buy some more,",99,e+"s",r+".")}

[bottles.pl]

Вот ссылка на оригинальный файл.

 

Punk33


Рег
09 Dec, 2010

Тем
63

Постов
192

Баллов
527
  • 26, Oct 2024
  • #4
function firstUpper(s) { return s.slice(0, 1).toUpperCase() + s.slice(1); } function bottles(x) { return (x || "no more") + " " + (x == 1 ? "bottle" : "bottles") + " of beer"; } function wall(x) { return bottles(x) + " on the wall"; } function line1(x) { return wall(x) + ", " + bottles(x) + "."; } function line2(x, max) { return (x ? "take one down and pass it around, " + wall(x - 1) : "go to the store and buy some more, " + wall(max)) + "."; } function verse(x, max) { return [line1(x), line2(x, max)].map(firstUpper).join("\n") + "\n\n"; } function song(max) { var text = ""; for(var x = max; x >= 0; x--) { text += verse(x, max); } return text; } print(song(99));

;)

jQuery + консоль FireBug

 

Doker123


Рег
20 Apr, 2014

Тем
86

Постов
197

Баллов
647
  • 26, Oct 2024
  • #5

using System;class D{static void Main(){string a="s",z="",w=" on the wall",q=", ",p=".\n",b=" bottle",c=" of beer";for(int O=99;O>=1;)Console.WriteLine(O+b+(O>1?a:z)+c+w+q+O+b+(O>1?a:z)+c+p+(--O>0?"Take one down and pass it around, "+O:"Go to the store and buy some more, 99")+b+(O==1?z:a)+c+w+p);}}

HQ9+ (1 персонаж)

Конечно, это не полный по Тьюрингу язык, но это все равно имеет значение.

 

Ballage


Рег
02 Nov, 2004

Тем
86

Постов
188

Баллов
618
  • 26, Oct 2024
  • #6

o =" bottles of beer";w=" on the wall";t="Take one down and pass it around, ";s=" bottle of beer" 99.downto(3){|b|puts"#{b}#{o+w}, #{b}#{o}.\n#{t}#{b-1}#{o+w}.\n\n"} puts"2 #{o+w}, 2 #{o}.\n#{t}1#{s}#{w}.\n\n1#{s+w}, 1#{s}.\nGo to the store and buy some more, 99#{o+w}." ||answer||

Кто сказал, что в C# слишком много церемоний? Кто бы это ни был, он еще никогда не был так прав.

С s="" i=99 b="%d bottl%s of beer" w=" on the wall" t="Take one down and pass it around, " p=q="es" while i:s+=b%(i,p)+w+", "+b%(i,p)+".\n";i-=1;p=p[:i];s+=t+b%(i,p)+w+".\n\n" print s[:-64]+"Go to the store and buy some more, "+b%(99,q)+w+"." on the generated executable will reveal the complete song text in the executable.

$i=99;$b=" bottles of beer";$o=" bottle of beer";$c=" on the wall";while($i>1){echo"$i$b$c, $i$b.\nTake one down and pass it around, ".--$i.(($i>1)?$b:$o).$c.".\n\n";}echo"$i$o$c, $i$o.\nGo to the store and buy some more, 99$b$c."; ||answer||

Эта программа генерирует полный текст песни в виде одной строки с помощью препроцессора. Фактический код C просто выводит построенную таким образом строку. Вызов

m: n: 99 b: does [ combine [n { bottle} either n > 1 {s} {} { of beer}] ] loop n [ print combine [ b w: { on the wall} c: {, } b p: {.} newline either 0 == -- n [ n: m {Go to the store and buy some more} ] [ {Take one down, and pass it around} ] c b w p newline ] ] ||answer||

C# (312 310 304 символа)

С#

M N 99 Bdz[cb[n{ bottle}egN 1{s}{}{ of beer}]]loN[cb[b W{ on the wall}C{, }b P{.}lfEZ--n[Nm{Go to the store and buy some more}]{Take one down and pass it around}cBwPlf]]

Не хочу быть кратким, но, возможно, это можно считать креативом?

Обратите внимание, это всего лишь одно утверждение :)

 

Nedriczed35


Рег
12 Jun, 2007

Тем
80

Постов
197

Баллов
647
  • 26, Oct 2024
  • #7

exec'eJxtjrFqwzAQQHd/xVVgLCVqSbq5RHO2TtlcgyX7Qk3luyAphP59ZA0thGzi9O7es0bUERyn5DE/+AwOMdTxi0TljLeLmyzQB4GlaaCBg/hkWDigqMb/76aZz0CHHaCPCLaWTpLSTWw2kl7MXmkBTJC+EW7Wey3U9hmzzqU42R/MNMLEt6KFi40R5gQ28JUmndO0ODIkLhdjyjWFc9dfiLxg6Vsx1ZExu36Vddn2miVD2w59R4d9/6d+f8h7Wze3Y+GrS5gpwSjbVlV3Y1BZCg=='.decode('base64').decode('zip') ||answer||

Определенно нельзя назвать творческим, но это делается из командной строки с помощью одной команды.

print"""99 bottles of beer on the wall, 99 bottles of beer. 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 beer on the wall. 96 bottles of beer on the wall, 96 bottles of beer. Take one down and pass it around, 95 bottles of beer on the wall. 95 bottles of beer on the wall, 95 bottles of beer. Take one down and pass it around, 94 bottles of beer on the wall. .... Ok, this is stupid. First of all, what the brainfuck are the bottles doing on the wall? They're not spiders nor picture frames. And how are they sitting on the wall? 94 bottles of beer on the wall, 9.. oops, they fell down. 94 bottles of beer on the floor, 94 bottles of beer. Second.. who the HQ9+ wants to keep track? I think I lost count after drinking the 2nd one... Take one ... um... up, and pass it around, ..... er.. a lot of bottles of beer still on the floor. Fourthly, what's with this passing around scheme? They're not j..I mean letters, yeah, or boxes of chocolate. We all can just take one and drink it. It's healthier too. A pile of bottles of beer on the floor, a pile of bottles of beer. Everyone take one up and drink it, still a whole bunch of bottles of beer on the floor. Um.. seventhly, are we really that many in this assembly that we can finish 200 or however many bottles we had in the beginning? Without passing out? Go to the store and buy some more Yeah and who's gonna pay for it? Definitely not me. And how are you going to bring 300 bottles back from the store? In your car? Buddy, you're so drunk, you can't even C anything. Go home dude, go home. Take a cab.""" ||answer||

Хаскель, 272, 250, 243 символа.

(let l ((i 99)) (let ((b" bottle") (c" on the wall") (d"Take one down and pass it around, ") (e".\n") (f", ") (g" of beer")) (if (= i 1) (map display`(1 ,b ,g ,c ,f ,1 ,b ,g ,e "Go to the store and buy some more, 99" ,b ,c ,e)) (begin (map display `(,i ,b ,g ,c ,f ,i ,b ,e ,d ,i ,b ,c ,e "\n")) (l (-1+ i))))))

Windows PowerShell (198)

Довольно просто. (let l((i 99))(let((b" bottle")(c" on the wall")(d"Take one down and pass it around,")(e".\n")(f", ")(g" of beer"))(if(= i 1)(map display`(1,b,g,c,f,1,b,g,e"Go to the store and buy some more, 99",b,c,e))(begin(map display`(,i,b,g,c,f,i,b,e,d,i,b,c,e"\n"))(l(-1+ i)))))) is longer and invocation needs parentheses in any case. The plural detection ( b=' of beer on the wall';n=100;while(--n>1)if(n>1)print(n+" bottles"+b+', '+n+" bottles of beer.\nTake one down and pass it around, "+(n-1)+' bottle'+(n-1>1?'s':'')+b+'.\n\n');print("1 bottle"+b+", 1 bottle of beer.\nGo to the store and buy some more, 99 bottles of beer on the wall.") Я использую фильтр для бутылок пива, так как // Time to go to the shop and get some beer // // // // // #####.#####.#####.#####.#####.#####.##### // ##.#####.#####.#####.#####.#####.#####.## // #####.#####.#####.#####.#####.#####.##### // ##.#####.#####.#####.#####.#####.#####.## char *z [] = { "void l(char *s,int b){int i;printf(\"// \");for(i=0;i<b;++i)printf(s);", "printf(\"\\n\");}\nint main(int argc, char *argv[]){\nint i,j,k,x=%d;", "char*p;\nif(!x&&argc==2)x=atoi(argv[1]);\nif(!x){printf(\"// Time to ", "go to the shop and get some beer\\n//\\n//\\n//\\n//\\n\");k=7;\n", "}else{printf(\"// %%d bottles of beer on the wall, %%d bottles of beer", ".\\n\",x,x);printf(\"// Take one down and pass it round, \");\n", "if(x>1)printf(\"%%d bottles of beer on the wall.\\n//\\n\",x-1);\n", "else printf(\"no more bottles of beer on the wall.\\n//\\n\");\n", "k=x>2?x:2;l(\" ^ \",x);l(\" / \\\\ \",x);l(\"/ \\\\ \",x);", "l(\"| | \",x);l(\"|Duf| \",x);l(\"| | \",x);l(\"----- \",x);}\n", "for(i=0;i<4;++i){\nprintf(\"// %%s\", i&1 ? \"##.\" : \"\");\n", "for(j=i&1;j<k;++j)\nprintf(\"%%s#####\",j!=(i&1)?\".\":\"\");\n", "printf(\"%%s\\n\",i&1?\".##\":\"\");}\nprintf(\"\\nchar *z [] = {\\n\");\n", "for(i=0;i<sizeof z/sizeof z[0];++i){\nprintf(\"\\\"\");\n", "for(p=z[i];*p;++p)\nswitch (*p){\ncase '\\n':printf(\"\\\\n\");break;\n", "case '\\\\':printf(\"%%c%%c\",92,92);break;\n", "case '%%':printf(\"%%c\",37);break;\ncase '\"':printf(\"%%c%%c\",92,'\"');break;\n", "default:printf(\"%%c\", *p);break;}\nprintf(\"\\\",\\n\");}\n", "printf(\"};\\n\");\nfor(i=0;i<sizeof z/sizeof z[0];++i)\n", "printf(z[i],x?x-1:0);}\n", }; void l(char *s,int b){int i;printf("// ");for(i=0;i<b;++i)printf(s);printf("\n");} int main(int argc, char *argv[]){ int i,j,k,x=0;char*p; if(!x&&argc==2)x=atoi(argv[1]); if(!x){printf("// Time to go to the shop and get some beer\n//\n//\n//\n//\n");k=7; }else{printf("// %d bottles of beer on the wall, %d bottles of beer.\n",x,x);printf("// Take one down and pass it round, "); if(x>1)printf("%d bottles of beer on the wall.\n//\n",x-1); else printf("no more bottles of beer on the wall.\n//\n"); k=x>2?x:2;l(" ^ ",x);l(" / \\ ",x);l("/ \\ ",x);l("| | ",x);l("|Duf| ",x);l("| | ",x);l("----- ",x);} for(i=0;i<4;++i){ printf("// %s", i&1 ? "##." : ""); for(j=i&1;j<k;++j) printf("%s#####",j!=(i&1)?".":""); printf("%s\n",i&1?".##":"");} printf("\nchar *z [] = {\n"); for(i=0;i<sizeof z/sizeof z[0];++i){ printf("\""); for(p=z[i];*p;++p) switch (*p){ case '\n':printf("\\n");break; case '\\':printf("%c%c",92,92);break; case '%':printf("%c",37);break; case '"':printf("%c%c",92,'"');break; default:printf("%c", *p);break;} printf("\",\n");} printf("};\n"); for(i=0;i<sizeof z/sizeof z[0];++i) printf(z[i],x?x-1:0);} and negates it again so we now have a boolean describing whether the number needs a plural or not. This is then implicitly casted to an integer when multiplying the string.

) сначала уменьшает количество бутылок на единицу (поэтому множественное число — это все, что не равно нулю), приводит его к логическому значению и отрицает его с помощью первого

Разрывы строк — это весело.

Создание большего количества строк, чем необходимо, а затем их сокращение.

 

Plashner


Рег
27 Oct, 2011

Тем
73

Постов
176

Баллов
571
  • 26, Oct 2024
  • #8

Свернуть 19 символов

b ||answer||

(требуется подключение к Интернету)

== ||answer||

Почти правильный антигольф от сверхнетерпеливого нового программиста на языке C, изучающего Perl?

a==1

JavaScript (216 228 215) (a-1?'s':'') to get 99 in the last line, (a||99) Изменить: в начальной версии была одна «1 бутылка пива», 3-я версия полностью переписана, обратите внимание на такие классные трюки, как for(a=99,c=" on the wall";a;)document.write((d=eval(b="(a||99)+' bottle'+(a-1?'s':'')+' of beer'"))+c+", "+d+".<br>"+(--a?"Take one down and pass it around, ":"Go to the store and buy some more, ")+eval(b)+c+".<p>") though without need for the wasteful #!/usr/bin/perl # ^ # | # | # That's the Perl interpreter. # You might need to change this line based on # your Linux/Unix distribution. # Pragmas for debugging! use strict; use warnings; # Library dependencies...none! lolz # Main implementation my $number_of_bottles_of_beer_on_the_wall = 99; #start with 99 bottles LOOP: while( $number_of_bottles_of_beer_on_the_wall > 0 ) { printf( "%d bottles of beer on the wall, %d bottles of beer\n", $number_of_bottles_of_beer_on_the_wall, $number_of_bottles_of_beer_on_the_wall, ); if( $number_of_bottles_of_beer_on_the_wall > 1 ) { $number_of_bottles_of_beer_on_the_wall -= 1; printf( "Take one down and pass it around, %d bottles of beer on the wall.\n\n", $number_of_bottles_of_beer_on_the_wall, ); } else { printf( "Go to the store and buy some more, %d bottles of beer on the wall\n", 99 ); last LOOP; } } делая множественное число для каждого случая, но curl -L j.mp/eGv9K5 inside a statement where it is used.

и установив значение

 

Oliri


Рег
17 Jan, 2011

Тем
78

Постов
186

Баллов
606
  • 26, Oct 2024
  • #9

С

! ||answer||

Должно быть, я пропустил этот вопрос, поэтому вот версия, которую я опубликовал в качестве ответа в другом месте. Это версия на основе C quine. Скомпилируйте и запустите, чтобы получить следующую строку песни. Повторяйте, пока не надоест. Если в коде указано «Пора идти...», введите количество пива при следующем запуске в качестве аргумента командной строки.

Javascript (285)

!!--$_ ||answer||

Предполагается, что существует функция print для вывода строки.

Схема (270)

function

Без пробелов:

filter b{"$_ bottle$('s'*!!--$_) of beer"}(99..1|%{($_|b)+($w=' on the wall')+", $($_|b)." "Take one down and pass it around, $(--$_|b)$w. "})[0..196] "Go to the store and buy some more, $(99|b)$w." ||answer||

С пробелами:

Питон - много

(&)=(++) b 1=" bottle" b _=b 1&"s" w=" on the wall" p n=show n&b n&" of beer" f n=putStrLn$p n&w&","&p n&".\n"&c(n-1) c 0="Go to the store and buy some more, "&p 99&w&"." c n="Take one down and pass it around, "&p n&w&"\n" main=mapM f[99,98..1]

Амидоинитрит? http://www.youtube.com/watch?v=Y0Z0raWIHXk

Дополнительная ссылка (мне очень помогла с кодом):

 

Parazzit


Рег
04 Dec, 2006

Тем
76

Постов
211

Баллов
651
  • 26, Oct 2024
  • #10

Питон (318)

perl -e '$i=99;while($i>1){print("$i bottles of beer on the wall, $i bottles of beer.\nTake one down and pass it around, ".--$i." bottles of beer on the wall\n\n");}print("1 bottle of beer on the wall, 1 bottle of beer.\nGo to the store and buy some more, 99 bottles of beer on the wall.\n");' ||answer||

Я нашел способ сделать программу на Python короче :) Ребму

using System; using System.Linq; class Program { static void Main() { Console.WriteLine(string.Join(Environment.NewLine, Enumerable.Range(0, 100).Select(i => string.Format( string.Format( "{0} {1} {{3}} {{4}},{{9}}{0} {1} {{3}}.{{9}}{2},{{9}}{3} {4} {{3}} {{4}}.{{9}}", i == 99 ? "{0}" : "{7}", i == 98 ? "{1}" : "{2}", i == 99 ? "{6}" : "{5}", i == 98 ? "{0}" : "{8}", i == 97 ? "{1}" : "{2}" ), "No", "bottle", "bottles", "of beer", "on the wall", "Take one down, pass it around", "Go to the store, buy some more", 99 - i, (198 - i) % 100, Environment.NewLine )))); } }

— 167 символов

Возможно, можно было бы убрать несколько персонажей, это была всего лишь первая попытка. :) Вот эквивалент Ребол

class P{static void Main(){string b=" bottle",w=" on the wall",o=" of beer",p=".\n",s="s";for(int i=99;i>0;i--)System.Console.Write(i+b+(i>1?s:"")+o+w+", "+i+b+(i>1?s:"")+o+p+(i>1?"Take one down and pass it around, "+(i-1)+b+(i-1>1?s:"")+o+w+p+"\n":"Go to the store and buy some more, "+99+b+s+o+w+p));}}

в котором стенография выкипела. Все еще довольно конкурентоспособно, особенно учитывая ясность: Комментированный исходный код

доступен на GitHub

 

Zhigor


Рег
14 Jan, 2007

Тем
62

Постов
193

Баллов
553
  • 26, Oct 2024
  • #11
#define BOTTLES(n) n " bottles of beer" #define BOTTLE "1 bottle of beer" #define OTW " on the wall, " #define TAKE "Take one down, pass it around, " #define BUY "Go to the store and buy some more, " #define STOP "." #define NL "\n" #define LINE1(n) BOTTLES(n) OTW BOTTLES(n) STOP NL #define LINE1A BOTTLE OTW BOTTLE STOP NL #define LINE2(n) TAKE BOTTLES(n) STOP NL #define LINE2A TAKE BOTTLE STOP NL #define LINEX BUY BOTTLES("99") NL #define MIDDLEPART(n) LINE2(n) NL LINE1(n) #define MIDDLELAST LINE2A NL LINE1A #define EIGHT_TO_TWO(S, M) M(S "8") M(S "7") M(S "6") M(S "5") M(S "4") M(S "3") M(S "2") #define EIGHT_TO_ONE(S, M) EIGHT_TO_TWO(S, M) M(S "1") #define EIGHT_TO_TWO_AGAIN(S, M) M(S "8") M(S "7") M(S "6") M(S "5") M(S "4") M(S "3") M(S "2") #define EIGHT_TO_ONE_AGAIN(S, M) EIGHT_TO_TWO_AGAIN(S, M) M(S "1") #define NINE_TO_TWO(S, M) M(S "9") EIGHT_TO_TWO(S, M) #define EIGHT_TO_ZERO(S, M) EIGHT_TO_ONE(S, M) M(S "0") #define NINE_TO_ZERO(S, M) M(S "9") EIGHT_TO_ZERO(S, M) #define NINETIES EIGHT_TO_ZERO("9", MIDDLEPART) #define NTIES(n) NINE_TO_ZERO(n, MIDDLEPART) #define EIGHTIES_TO_TENS EIGHT_TO_ONE_AGAIN("", NTIES) #define NAUGHTIES NINE_TO_TWO("", MIDDLEPART) #define SONG LINE1("99") NINETIES EIGHTIES_TO_TENS NAUGHTIES MIDDLELAST LINEX #include <stdio.h> int main() { puts(SONG); return 0; }

PHP: 285 240 233 231 символов http://ideone.com/5fQmcd

Вывод здесь:

 

Jertseefs73


Рег
25 Oct, 2024

Тем
60

Постов
184

Баллов
514
  • 26, Oct 2024
  • #12
strings ||answer||

Питон, 241 символ

Рубин, 274 байта

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace _99Bottles { class Program { static void Main(string[] args) { PrintSong(99); } static void PrintSong(int bottleCount) { Func<int, string> sOrBlank = howMany => howMany > 1 ? "s" : ""; PrintBottles(howManyBottles => { Console.WriteLine("{0} bottle{1} of beer on the wall, {0} bottle{1} of beer.", howManyBottles, sOrBlank(howManyBottles)); if (howManyBottles > 1) { Console.WriteLine("Take one down and pass it around, {0} bottle{1} of beer on the wall.", --howManyBottles, sOrBlank(howManyBottles)); } else { Console.WriteLine("Go to the store and buy some more, 99 bottles of beer on the wall.", --howManyBottles); } }, bottleCount); } static void PrintBottles(Action<int> printBottles, int count) { printBottles(count); if (count > 1) { PrintBottles(printBottles, --count); } } } } ||answer||

Все еще новичок в Ruby, просто играю

9 ||answer||

С# (299 символов)

JavaScript (7 функций)

$('code:first').text() ||answer||

Не играл в гольф. Это задумано как (в основном) функциональная реализация песни.

╓┬────╖ ╔════╗ ┌───╖ ╟┘99b ║ ║ −1 ╟──┤ + ╟──┐ ╙──┬──╜ ╚════╝ ╘═╤═╝ ├──────────────────────────┴─────────────────────────────┐ ╔════╗ ┌─┴─╖ │ ╔════════════════════════════════════════════════════╗│ ║ 99 ╟──┤ ? ╟──┘ ║ 93438979891487426396059469986395555362079573844971 ║│ ╚════╝ ╘═╤═╝ ║ 71377306928718494179034460561943201885027745835961 ║│ ┌──┴───╖ ║ 98129935108241412387473531261660077880505710501626 ║│ ╔════╗ │ 99bp ║ ║ 32694396343717333192558234646820019070451056711 ║│ ║ 99 ║ ╘══╤═══╝ ╚══════════════════════════╤═════════════════════════╝│ ╚═╤══╝ ┌─┴─╖ ┌───╖ ┌─┴─╖ ╔═════════════════╗ │ ┌──┴──╖ │ ‼ ╟───────────────────────┤ ‼ ╟──┤ ? ╟──╢ 445551776368547 ║ │ │ 99b ║ ╘═╤═╝┌─────────────────────┐╘═╤═╝ ╘═╤═╝ ║ 925186328623383 ║ │ ╘══╤══╝ │ │╔═══════════════════╗│ │ │ ║ 851314944882510 ║ │ │ │ │║ 15177132563375318 ║│ │ │ ║ 812246570019017 ║ │ ╔════════╗ │ │║ 07655616350359109 ║│ │ │ ║ 240477365113929 ║ │ ║ 318287 ║ │ │║ 82597577171382437 ║│ │ │ ║ 659548419629671 ║ │ ║ 023073 ║ │ │║ 18150105146396039 ║│ │ │ ║ 952755268258505 ║ │ ║ 603558 ║ │ │║ 2022986808360992 ║│ │ │ ║ 759402210908648 ║ │ ║ 743780 ║ │ │╚══════════╤════════╝│ │ │ ║ 737406010882693 ║ │ ║ 068900 ║ │ │ ┌─┴─╖ ┌───╖ │ │ │ ║ 018745757193818 ║ │ ║ 028319 ║ │ │ │ ‼ ╟─┤ ‼ ╟─┘ │ │ ║ 597439618635403 ║ │ ║ 948400 ║ │ │ ╘═╤═╝ ╘═╤═╝ │ │ ║ 821854707881243 ║ │ ║ 620075 ║ │ │ ┌─┴─╖ │ ┌─┴─╖ │ ║ 92049082452 ║ │ ║ 955580 ║ │ └─────┬───┤ ‼ ╟────────┤ ‼ ║ │ ╚═════════════════╝ │ ║ 347161 ║ │ │ ╘═══╝┌──────┐╘═╤═╝ └─────────────┐ │ ║ 651333 ║ │ ╔═══╗│┌──────╖│╔════╗│ ╔╧═════════╗ │ │ ║ 590970 ║ │ ║ 0 ║└┤ 99bp ╟┘║ −1 ║└┐║ 20971566 ║ ├────────────┘ ║ 678045 ║ │ ╚══╤╝ ╘══════╝ ╚══╤═╝ │╚══════════╝ │ ║ 336290 ║ ┌─┴─╖ ┌─┴─╖ ┌─────╖ ┌┴──╖├──────────────────────┘ ║ 721824 ╟──┤ ‼ ╟──┤ ? ╟──┤ 99b ╟──┤ + ║│ ╚════════╝ ╘═══╝ ╘═╤═╝ ╘═════╝ ╘═╤═╝│ ╓┬──────╖ └───────┬───────┘ │ ╟┘ 99bp ║ └──────────┘ ╙───┬───╜ ┌────────────────────────────────────────────────┴──────────────┐ │╔══════════════════════════════════════════╗╔═══════════╗ │ │║ 8592134145756414358602136806465202028576 ║║ 232783950 ║ │ │╚══════════════════════════════╤═══════════╝╚╤══════════╝ │ │ ┌───╖ ╔═══╗ ┌─┴─╖ ┌───╖ ┌─┴─╖ ┌─────────╖ │ └───────────────┤ = ╟──╢ 1 ║ │ ‼ ╟──┤ ‼ ╟──┤ ? ╟──┤ int→str ╟──┴┐ ╘═╤═╝ ╚═══╝ ╘═╤═╝ ╘═╤═╝ ╘═╤═╝ ╘═════════╝ │ ╔═══╗ ┌─┴─╖ ┌─┴─╖ │ └──────────────────┘ ║ 0 ╟──┤ ? ╟─────────┤ ‼ ╟──┐ ╚═══╝ ╘═╤═╝ ╘═══╝ │ ╔════╧╗╔════════════════╧════════════════════════════════╗ ║ 115 ║║ 20338288213193790107412311132593873016630280224 ║ ╚═════╝╚═════════════════════════════════════════════════╝ ||answer||

Иди (263)

$('pre').css('line-height',1)

PHP — 252 байта

Надеюсь, завтра я еще немного сожму.

 

ProVkMarket


Рег
02 Feb, 2017

Тем
71

Постов
206

Баллов
571
  • 26, Oct 2024
  • #13

Рубин 1.9.2p136:223

Go to the store and buy some more, 99 bottles of beer on the wall. ||answer||

Я не трус, ты можешь прочитать мое ;p

(Оракул) SQL

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

Samika


Рег
14 Jun, 2013

Тем
75

Постов
182

Баллов
577
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно

Lumtu.com © 2024