##C#, 274 bytes Direct copy from my answer on another [question][1] (it was popularity, but I just treated it as golf). Never did get around to golfing it further. class P{static void Main(){ for(int i=99;i>0; )System.Console.Write (i+"{1}{2}{3}, {0}{1}{2} of beer.\n"+(i>1? "Take one down and pass it around, {4}{1}{5}{3}.\n\n": "Go to the store and buy some more, 99{1}s{3}." ),i--," bottle",i>0?"s":"", " of beer on the wall" ,i,i>1?"s":"" );}} [1]: https://codegolf.stackexchange.com/questions/2/99-bottles-of-beer