소개
표준 프로그래밍 실습을위한 가장 짧은 솔루션 카탈로그를 수집하려는 최근 노력에서 PPCG의 첫 번째 바닐라 FizzBuzz 과제가 있습니다. 다른 카탈로그 문제를 보려면 "Hello World!"가 있습니다. 그리고 "이 숫자는 소수인가?" .
도전
1에서 100까지의 10 진수를 인쇄하는 프로그램을 작성하십시오. 그러나 숫자 대신 3 개의 인쇄“Fizz”의 배수와 5 개의 인쇄“Buzz”의 배수의 경우. 3과 5의 배수 인“FizzBuzz”의 숫자입니다.
산출
출력은 개행 ( \n
또는 또는 \r\n
)으로 구분 된 숫자 (및 Fizzes, Buzzes 및 FizzBuzzes) 목록입니다 . 후행 줄 바꿈은 허용되지만 선행 줄 바꿈은 허용되지 않습니다. 개행을 선택하는 것 외에도 출력은 다음과 같아야합니다.
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz
Fizz
22
23
Fizz
Buzz
26
Fizz
28
29
FizzBuzz
31
32
Fizz
34
Buzz
Fizz
37
38
Fizz
Buzz
41
Fizz
43
44
FizzBuzz
46
47
Fizz
49
Buzz
Fizz
52
53
Fizz
Buzz
56
Fizz
58
59
FizzBuzz
61
62
Fizz
64
Buzz
Fizz
67
68
Fizz
Buzz
71
Fizz
73
74
FizzBuzz
76
77
Fizz
79
Buzz
Fizz
82
83
Fizz
Buzz
86
Fizz
88
89
FizzBuzz
91
92
Fizz
94
Buzz
Fizz
97
98
Fizz
Buzz
이 규칙의 유일한 예외는 인사말, ANSI 색상 코드 또는 들여 쓰기와 같이 억제 할 수없는 언어 해석기의 일정한 출력입니다.
추가 규칙
FizzBuzz를 재생하는 가장 짧은 방법으로 언어를 찾는 것이 아니라 모든 언어에서 가장 짧은 방법을 찾는 것입니다. 따라서 답변이 수락 된 것으로 표시되지 않습니다.
제출은 적절한 기존 인코딩 (보통 UTF-8은 아님)으로 바이트 단위로 점수가 매겨집니다. 폴더와 같은 일부 언어는 점수를 받기가 다소 까다 롭습니다. 의심스러운 경우 Meta에 문의하십시오.
STDERR에 인쇄 할 수있는 것이 없습니다.
일반적인 규칙과 달리이 과제보다 새로운 언어라도 언어 (또는 언어 버전)를 자유롭게 사용하십시오. 빈 프로그램이 FizzBuzz 출력을 생성하는 언어를 만들어서 이것을 남용하려는 경우, 매우 지루한 답변을 준비하게 된 것을 축하합니다.
제출물을 테스트하려면 통역사가 있어야합니다. 이전에 구현되지 않은 언어에 대해이 통역사를 직접 작성할 수 있습니다.
선택한 언어가 이미 답변이있는 다른 (잠재적으로 더 널리 사용되는) 언어의 사소한 변형 인 경우 (BASIC 또는 SQL 방언, 유닉스 쉘 또는 Alphuck과 같은 사소한 Brainfuck 파생물을 생각하십시오) 기존에 메모를 추가하십시오 동일하거나 매우 유사한 솔루션은 다른 언어에서도 가장 짧습니다.
출력이 고정되어 있으므로 출력을 하드 코딩 할 수 있습니다 (단, 가장 짧은 옵션은 아님).
프로그램의 원래 작성자에게 크레딧을 제공하는 한 기존 솔루션을 사용할 수 있습니다.
그렇지 않으면 표준 허점이 허용되지 않습니다.
부수적으로, 골프가 많지 않은 언어로 지루한 (그러나 유효한) 답변을 줄이지 마십시오. 이들은 가능한 한 완전한 카탈로그를 컴파일하려고 시도하기 때문에이 질문에 여전히 유용합니다. 그러나 저자가 실제로 코드를 작성하는 데 노력을 기울여야하는 언어로 답을 주로 투표하십시오.
목록
var QUESTION_ID=58615;var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe";var COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk";var OVERRIDE_USER=30525;var answers=[],answers_hash,answer_ids,answer_page=1,more_answers=true,comment_page;function answersUrl(index){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+index+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(index,answers){return"https://api.stackexchange.com/2.2/answers/"+answers.join(';')+"/comments?page="+index+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:true,success:function(data){answers.push.apply(answers,data.items);answers_hash=[];answer_ids=[];data.items.forEach(function(a){a.comments=[];var id=+a.share_link.match(/\d+/);answer_ids.push(id);answers_hash[id]=a});if(!data.has_more)more_answers=false;comment_page=1;getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:true,success:function(data){data.items.forEach(function(c){if(c.owner.user_id===OVERRIDE_USER)answers_hash[c.post_id].comments.push(c)});if(data.has_more)getComments();else if(more_answers)getAnswers();else process()}})}getAnswers();var SCORE_REG=/<h\d>\s*([^\n,<]*(?:<(?:[^\n>]*>[^\n<]*<\/[^\n>]*>)[^\n,<]*)*),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/;var OVERRIDE_REG=/^Override\s*header:\s*/i;function getAuthorName(a){return a.owner.display_name}function process(){var valid=[];answers.forEach(function(a){var body=a.body;a.comments.forEach(function(c){if(OVERRIDE_REG.test(c.body))body='<h1>'+c.body.replace(OVERRIDE_REG,'')+'</h1>'});var match=body.match(SCORE_REG);if(match)valid.push({user:getAuthorName(a),size:+match[2],language:match[1],link:a.share_link,});else console.log(body)});valid.sort(function(a,b){var aB=a.size,bB=b.size;return aB-bB});var languages={};var place=1;var lastSize=null;var lastPlace=1;valid.forEach(function(a){if(a.size!=lastSize)lastPlace=place;lastSize=a.size;++place;var answer=jQuery("#answer-template").html();answer=answer.replace("{{PLACE}}",lastPlace+".").replace("{{NAME}}",a.user).replace("{{LANGUAGE}}",a.language).replace("{{SIZE}}",a.size).replace("{{LINK}}",a.link);answer=jQuery(answer);jQuery("#answers").append(answer);var lang=a.language;lang=jQuery('<a>'+lang+'</a>').text();languages[lang]=languages[lang]||{lang:a.language,lang_raw:lang.toLowerCase(),user:a.user,size:a.size,link:a.link}});var langs=[];for(var lang in languages)if(languages.hasOwnProperty(lang))langs.push(languages[lang]);langs.sort(function(a,b){if(a.lang_raw>b.lang_raw)return 1;if(a.lang_raw<b.lang_raw)return-1;return 0});for(var i=0;i<langs.length;++i){var language=jQuery("#language-template").html();var lang=langs[i];language=language.replace("{{LANGUAGE}}",lang.lang).replace("{{NAME}}",lang.user).replace("{{SIZE}}",lang.size).replace("{{LINK}}",lang.link);language=jQuery(language);jQuery("#languages").append(language)}}
body{text-align:left!important}#answer-list{padding:10px;width:290px;float:left}#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="language-list"> <h2>Shortest Solution by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr> </thead> <tbody id="languages"> </tbody> </table> </div> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr> </thead> <tbody id="answers"> </tbody> </table> </div> <table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr> </tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr> </tbody> </table>
Nothing can be printed to STDERR.
이것은 실행 중이거나 컴파일 할 때만 적용됩니까 (별도의 단계라고 가정)?