首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >99瓶啤酒的翻译程序

99瓶啤酒的翻译程序
EN

Code Golf用户
提问于 2011-09-23 02:41:06
回答 1查看 1.1K关注 0票数 5

编写一个程序(用第一语言A),在标准输入上解释"99瓶啤酒“程序和FizzBuzz程序(都用第二语言)。输出应该转到标准输出;您可以用缺乏标准化I/O接口的语言实现解释器。

约束

99瓶的程序必须来自这个网站的问题http://99-bottles-of-beer.net/。链接到(不要复制和粘贴)99瓶程序在你的答案.具体的输出并不重要;重要的是解释器是否产生与更完整的输出完全相同的输出。

您可以自己编写FizzBuzz程序,也可以从互联网或其他来源获得它。在后一种情况下,不要将程序复制并粘贴到您的回答中。

这两种语言(以及99瓶程序)都必须在2011年9月22日之前就已经存在了(当这个挑战第一次发布时)。具体来说,你不能为了特定的目的而发明你自己的语言。

任何对要发送到输出(或访问Internet)的非空格字符或字符串进行硬编码的解释器都是欺骗行为,是不允许的。例如,包含"beer“、"Buzz”甚至"b“作为字符串或字符文字的解释器是不可接受的,但是如果对应的print语句没有硬编码,则从1到99循环是可以接受的。

两种语言的名称不得以同一字母开头,也不得有任何共同的三个字符子字符串。例如:

  • APL和AWK以相同的字母开头,C、C++和C#也是如此。
  • JavaScript和VBScript有着共同之处。

此外,99瓶和FizzBuzz程序不能在A语言或解释器所依赖的任何其他语言中有效--直接使用eval、exec或类似的语言特性或方法编译和执行它们是明确禁止的。

评分

得分是以下的总和:

  • 翻译字符数的十倍
  • FizzBuzz程序字符计数的十倍。
  • 99瓶程序的实际字符计数(因为它不应该是一个高尔夫项目)。这不包括任何前导和尾随空格,但包括用于缩进的空白。每个换行符都算作一个字符。

为了进行验证,请包含您自己编写的所有内容的代码,并链接到您使用过的任何已发布的源。

EN

回答 1

Code Golf用户

发布于 2011-09-23 04:04:15

C(3834)

JavaScript解释器

解释器(180 * 10 = 1800)

f()是要调用的函数。

代码语言:javascript
复制
function prvarf(x){a=arguments;i=0;s+=(t=x.replace(/%./g,function(){return a[++i]}));return t}function f(x){Function(x.replace(/int/g,'var').replace(/#|ma/g,'f//'))(s='');return s}

99-瓶(1074)

http://99-bottles-of-beer.net/language-c-844.html

FizzBuzz (96 * 10 = 960)

改编自http://perl.guru.org/scott/misc/golf.html的一个程序:

代码语言:javascript
复制
main()
{int b=0;for(;++b<101;)printf(printf("%s%s",b%3?"":"Fizz",b%5?"":"Buzz")?"\n":"%d\n",b);}
票数 3
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/3721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档