1, 2, ফিজ, 4, বাজ


148

ভূমিকা

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

চ্যালেঞ্জ

একটি প্রোগ্রাম লিখুন যা 1 থেকে 100 সহ দশমিক সংখ্যা মুদ্রণ করে। তবে সংখ্যার পরিবর্তে তিনটি মুদ্রণ "ফিজ" এবং পাঁচটি মুদ্রণ "বাজ" এর গুণকগুলির জন্য। সংখ্যার জন্য যা উভয় তিনটি এবং পাঁচটি "FizzBuzz" মুদ্রণের গুণক।

আউটপুট

আউটপুটটি একটি নতুন লাইন (হয় \nবা \r\n) দ্বারা পৃথক সংখ্যার (এবং ফিজ, বাজেস এবং ফিজবুজ) একটি তালিকা হবে । একটি অনুবর্তনযোগ্য নতুন লাইন গ্রহণযোগ্য, তবে একটি শীর্ষস্থানীয় নতুন লাইন নয়। আপনার নতুন লাইনের পছন্দ বাদে আউটপুটটি দেখতে একেবারেই দেখতে হবে:

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

এই নিয়মের একমাত্র ব্যতিক্রম হ'ল আপনার ভাষার অনুবাদকের ধ্রুবক আউটপুট যা দমন করা যায় না, যেমন গ্রিটিংস, এএনএসআই রঙ কোড বা ইন্ডেন্টেশন।

আরও বিধি

  • এটি ফিজবজ বাজানোর জন্য সবচেয়ে সংক্ষিপ্ত পদ্ধতির সাথে ভাষাটি সন্ধান করার পক্ষে নয়, এটি প্রতিটি ভাষায় স্বল্পতম পদ্ধতির সন্ধান সম্পর্কে। অতএব, কোন উত্তর গৃহীত হিসাবে চিহ্নিত করা হবে না।

  • জমাগুলি যথাযথ প্রিক্সিস্টিং এনকোডিংয়ে বাইটে স্কোর করা হয়, সাধারণত (তবে প্রয়োজনীয় নয়) ইউটিএফ -8। ফোল্ডারগুলির মতো কিছু ভাষাও স্কোর করতে কিছুটা জটিল doubt যদি সন্দেহ হয় তবে দয়া করে মেটাকে জিজ্ঞাসা করুন।

  • এসটিডিআরআর তে কিছুই মুদ্রণ করা যায় না।

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

    নোট করুন যে সেখানে একজন দোভাষী থাকতে হবে যাতে জমাটি পরীক্ষা করা যায়। পূর্ববর্তী অপ্রয়োজনীয় ভাষার জন্য নিজেকে এই অনুবাদক লিখতে (এবং এমনকি উত্সাহিত) অনুমতি দেওয়া হয়েছে।

  • যদি আপনার পছন্দের ভাষাটি অন্য একটি (তাত্পর্যপূর্ণভাবে জনপ্রিয়) ভাষার একটি তুচ্ছ রূপে ইতিমধ্যে উত্তর রয়েছে (মনে করুন বেসিক বা এসকিউএল উপভাষা, ইউনিক্স শেলস বা আলফাকের মতো তুচ্ছ ব্রেনফাক ডেরিভেটিভস ???) বিদ্যমানটিতে একটি নোট যুক্ত করার কথা বিবেচনা করুন উত্তর দিন যে একই বা খুব অনুরূপ সমাধানটি অন্য ভাষায়ও সংক্ষিপ্ত।

  • আউটপুট স্থির হওয়ার কারণে আপনি আউটপুটটিকে হার্ডকোড করতে পারেন (তবে এটি সংক্ষিপ্ত বিকল্প নাও হতে পারে)।

  • আপনি যতক্ষণ না প্রোগ্রামটির মূল লেখককে ক্রেডিট করেন ততক্ষণ আপনি প্রিজিস্টিং সমাধানগুলি ব্যবহার করতে পারেন।

  • স্ট্যান্ডার্ড লুফোলগুলি অন্যথায় অনুমোদিত নয়।

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

তালিকা

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>


1
Nothing can be printed to STDERR. এটি কি কেবল দৌড়ানোর সময়, বা সংকলনের সময় (
সত্যটি

@ শ্যাশলি কেবল চলমান অবস্থায়
বিটা

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

6
@ টিমভি যদিও আমি সম্মতি দিচ্ছি যে এটি এটি (আরও কিছুটা) আরও আকর্ষণীয় করে তুলবে, তবে আমি প্রায়শই ফিজবজকে কঠোরভাবে 1 থেকে 100 হিসাবে দেখেছি (উদাহরণস্বরূপ, উইকিপিডিয়া এবং রোসেটা কোডে)। লক্ষ্যটি যদি একটি "আধ্যাত্মিক" এফবি চ্যালেঞ্জ থাকে তবে তা বোধগম্য হয়।
জিওবিটস

58
একটি "ভ্যানিলা ফিজবজ" সুস্বাদু মনে হচ্ছে।
iamnotmaynard

উত্তর:


76

পাইথন 2, 56

i=0;exec"print i%3/2*'Fizz'+i%5/4*'Buzz'or-~i;i+=1;"*100

6
ডাং, এটি রক্তাক্ত প্রতিভা। মোড-রেজাল্টের সাহায্যে স্ট্রিংকে গুণিত করতে আমি কি আপনার ধারণাটি চুরি করতে পারি?
অ্যাডমবর্কবার্ক

@ টিমিমিডি এগিয়ে যান
feersum

15
56 (থেকে জন্য একটি ভিন্ন পদ্ধতি এখানে ): i=1;exec"print'FizzBuzz'[i%-3&4:12&8-i%5]or i;i+=1;"*100। বিট বশিংটি অপ্টিমাইজ করার চেষ্টা করতে যে কেউ অনুসন্ধানের অভিব্যক্তিগুলিকে জোর করাতে চায়?
xnor

1
খুব সুন্দর কৌশল, আমি মডুলোর ফলাফলটিকে বাইনারি বানাতে পছন্দ করি! আপনার পদ্ধতিটি 54 টি করে নামার জন্য আমার উন্নতি হয়েছে ... অবশ্যই আমি এটি আপনার অনুমতি ছাড়া উত্তর হিসাবে পোস্ট করব না (যেহেতু এটি আপনার উত্তর ~ 95%);)
টেরোসোরাসগুলি

2
@ টেরোসোরাসগুলি এগিয়ে যান ... আমার পদ্ধতিটি খুঁজে পাওয়া খুব কঠিন নয় এবং সন্দেহ নেই যে অনেক লোক স্বাধীনভাবে আবিষ্কার করেছিলেন।
ফেয়ারসাম

76

হেক্সাগনি , 91 বাইট

অনুগ্রহ করার জন্য ধন্যবাদ :)

বাহ, আমি কখনও কল্পনাও করতে পারি না যে আমি মার্টিনের হেক্সাগনির সমাধানটি মারতে পারি । তবে — কে এটি নষ্ট করবে — আমি এটি সম্পন্ন করেছি। ব্যর্থতার বেশ কিছু দিন পর, কারণ আমি Hexagony colorer তন্ন তন্ন ছিল না EsotericIDE আমার সমাধান করো। আমি স্পেসিফিকেশনটির বেশ কয়েকটি দিক ভুল পেয়েছি, তাই আমি কেবলমাত্র কলম এবং কাগজ এবং একটি পাঠ্য সম্পাদক ব্যবহার করে কয়েকটি ভুল "সমাধান" তৈরি করেছি। ঠিক আছে, অবশেষে আমি আমার অলসতা কাটিয়েছি এবং উভয় ভান্ডার ক্লোন করেছি, ভিজ্যুয়াল স্টুডিও ডাউনলোড করেছি এবং সেগুলি সংকলন করেছি। বাহ, তারা কি দরকারী সরঞ্জাম! যেমন আপনি দেখতে পাচ্ছেন, আপনি এমন একজনের থেকে দূরে রয়েছেন যাকে আপনি প্রোগ্রামার বলেছিলেন (মানে, আসুন! আমার কাছে ভিজ্যুয়াল স্টুডিওও ইনস্টল ছিল না, এবং প্রোগ্রাম কীভাবে সংকলন করা যায় সে সম্পর্কে খুব একটা ধারণা নেই);)

একটি কার্যকরী সমাধান খুঁজতে আমার এখনও কিছুটা সময় লেগেছে, এবং এটি বেশ ছাঁটাই এবং বিশৃঙ্খল, তবে এখানে এটি সমস্ত গৌরবতে রয়েছে:

একটি আকার 6 ষড়কোণে ফিজবজ:

3}1"$.!$>)}g4_.{$'))\<$\.\.@\}F\$/;z;u;<%<_>_..$>B/<>}))'%<>{>;e"-</_%;\/{}/>.\;.z;i;..>(('

ষড়ভুজীয় বিন্যাস:

      3 } 1 " $ .
     ! $ > ) } g 4
    _ . { $ ' ) ) \
   < $ \ . \ . @ \ }
  F \ $ / ; z ; u ; <
 % < _ > _ . . $ > B /
  < > } ) ) ' % < > {
   > ; e " - < / _ %
    ; \ / { } / > .
     \ ; . z ; i ;
      . . > ( ( '

এবং সুন্দর উপস্থাপনা, টিমউইর হেক্সাগনি কলারকে ধন্যবাদ :

বর্ণযুক্ত হেক্সাগনি ফিজবজ সমাধান

সুতরাং, এখানে 2 এফপিএসে একটি 110 সেকেন্ড দীর্ঘ জিআইএফ অ্যানিমেশন রয়েছে, প্রথম 6 নম্বর 1, 2, Fizz, 4, Buzz, Fizz, প্রোগ্রামের প্রথম 220 টিকগুলি (পুরো আকারের জন্য চিত্রটিতে ক্লিক করুন) চলাকালীন প্রোগ্রাম প্রবাহ দেখায় :

এখানে চিত্র বর্ণনা লিখুন

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

সর্বোপরি, একবার আপনি যখন মেমরির মডেল এবং ষড়জাগরের সীমানা অতিক্রম করে এমন রাস্তাগুলির বদলে প্রতিরোধের মোড়কে ঘিরে ফেলেন, তবে ষড়সাগনি কাজ করা এত কঠিন নয়। তবে এটি গল্ফ করা বাট একটি ব্যথা হতে পারে। ;)

এটা মজার ছিল!


1
খুব সুন্দর! :) আমি নিজেই পাশের দৈর্ঘ্যের 6 টি চেষ্টা করতে ভুলে যাচ্ছিলাম। ;) (আকর্ষণীয় যদি আমার সমাধান আরো সহজে যদিও পার্শ্ব দৈর্ঘ্যের 6 মধ্যে ফিট দেখতে হবে)।
মার্টিন Ender

@ মার্টিনব্যাটনার আমি এটি দেখতে পছন্দ করব :)
এমএল

2
আমি আপনার চেয়ে একজন প্রোগ্রামার কম, কারণ ভিজুয়াল স্টুডিও কি? : পি
আর

5
দুর্ভাগ্যক্রমে EsotericIDE স্বয়ংক্রিয়ভাবে এটি করতে পারে না। - দয়া করে ঠিক এগিয়ে যান এবং একটি বৈশিষ্ট্য প্রস্তাব ফাইল করুন , আমি যে কোনও এক দিন এটি প্রায় কাছাকাছি পেতে পারেন :)
টিমভি

1
(ওহো এটি শেষ জবাবের 6 মাস পরে আসে) আপনি প্রোগ্রামের শেষ থেকে 1 বাইট বন্ধ করে ধূসর পথটি 1 বাইট দ্বারা সরিয়ে এবং কমলা পথে "ক্যান্সেলিং অপ" স্থাপন করে গল্ফ পেতে পারেন 3}1"$.!$>)}g4_'{$))}\<$\.\.@\;F\$/;z;u;<%<_>_..$>B/<>}))'%<>{>;e"-</_%;\/{}/>.\)(z;i;..>('owএখন একটি অতিরিক্ত আছে (জেড এর পরে যা একটি দিয়ে "বাতিল" হতে পারে) বা সেখানে জেড রেখে। এখন এটি একটি) যা কমলার পথে 1 কিক চিহ্নের পরে সমস্ত কমান্ড ঠেলে দেয় এবং লাইন 3-এ থাকা কোনও অপ-পেছনে ফিরে আসে, বিটিডব্লু আমি ঠিক হেক্সাগনি কলোরার এবং এসোটেরিক আইডিইয়ের কারণে ভিজ্যুয়াল স্টুডিওও ইনস্টল করেছি: পি
সানি পুন

44

ল্যাবরেথ , 94 বাইট

"):_1
\ } 01/3%70.105
" :   @ "     .
"  =";_""..:221
+  _
"! 5%66.117
_:= "     .
="*{"..:221

উপ-100! এটি একটি মজার এক।

ব্যাখ্যা

চলুন শুরু করা যাক লাইব্রের্থে একটি সংক্ষিপ্ত প্রাইমার দিয়ে - যদি আপনি ইতিমধ্যে বেসিকগুলির সাথে পরিচিত হন তবে এই এড়িয়ে চলেন না:

  • ল্যাবরেথের দুটি স্ট্যাক রয়েছে - একটি প্রধান স্ট্যাক এবং একটি সহায়ক স্ট্যাক। উভয় স্ট্যাকের নীচে একটি সীমাহীন সংখ্যক শূন্য রয়েছে, যেমন +একটি খালি স্ট্যাকের উপর দুটি শূন্য যুক্ত হয়, এইভাবে শূন্যের দিকে ধাক্কা দেয়।

  • লাইব্রের্থে নিয়ন্ত্রণ প্রবাহ জংশনগুলি দ্বারা স্থির হয়, যা পরবর্তী কোথায় যেতে হবে তা নির্ধারণের জন্য স্ট্যাকের শীর্ষে তাকান। নেতিবাচক মানে বাম দিকে ঘুরুন, শূন্য মানে সোজা এগিয়ে যাওয়া এবং ইতিবাচক মানে ডানদিকে ঘুরুন ... তবে আমরা যদি কোনও দেয়ালে আঘাত করি তবে আমরা দিকটি বিপরীত করি। উদাহরণস্বরূপ, যদি কেবল সোজা সামনে এবং বাম দিকে বাঁকানো সম্ভব হয় তবে স্ট্যাকের শীর্ষটি ইতিবাচক হয়, সুতরাং যেহেতু আমরা ডানদিকে ঘুরতে পারি না আমরা তার পরিবর্তে বাম দিকে ঘুরব।

  • ল্যাবরেথের পপ xএবং ধাক্কায় অঙ্কগুলি 10*x + <digit>, যা বৃহত সংখ্যক তৈরি করা সহজ করে। যাইহোক, এর অর্থ হল যে একটি নতুন নম্বর শুরু করতে আমাদের 0 টি ধাক্কা দেওয়ার জন্য একটি নির্দেশের প্রয়োজন, যা _ভুগতে রয়েছে।

আসুন এখন আসল কোডে আসি!

এখানে চিত্র বর্ণনা লিখুন

লাল

"উপরের-বাম কোণে এক্সিকিউশন শুরু হয় , এটি একটি এনওপি। এরপরে ), যা স্ট্যাকের শীর্ষটিকে বাড়িয়ে দেয়, প্রথম পাসে 1 টি চাপায় nএবং প্রতিটি পাসে বৃদ্ধি করে।

পরবর্তী আমরা নকল nসঙ্গে :। যেহেতু nইতিবাচক, তাই আমরা ডানদিকে ঘুরিয়ে }চালিয়ে যাব (মূল স্ট্যাকের সহায়তায় সহায়ক স্থানান্তরিত) এবং :। আমরা একটি শেষ প্রান্তে আঘাত করেছি, সুতরাং আমরা ঘুরে দাঁড়ালাম এবং কার্যকর করলাম }এবং :আরও একবার, স্ট্যাকগুলি পছন্দ মতো ছেড়ে চলেছি

Main [ n n | n n ] Aux

আবারও, nইতিবাচক এবং আমরা ডানদিকে ঘুরলাম, এক্সিকিউট করে _101/যা n101 দ্বারা বিভক্ত হয় 101 যদি n101 হয় n/101 = 1এবং আমরা তখন রূপান্তর করি @যা প্রোগ্রামটি বন্ধ করে দেয়। অন্যথায়, আমাদের বর্তমান অবস্থা is

Main [ n 0 | n n ] Aux

কমলা 1 (আধুনিক 3)

3শীর্ষ শূন্যটিকে 3 ( 10*0 + 3 = 3) এ পরিণত করে এবং %একটি মডুলো সম্পাদন করে। যদি n%3ইতিবাচক হয় তবে আমরা ডানদিকে হলুদ হয়ে যাই "। অন্যথায় আমরা সঞ্চালন 70.105.122:.., যা ফলাফল Fizz। মনে রাখবেন যে আমাদের ক্ষেত্রে নতুন শূন্যগুলি ধাক্কা দেওয়ার দরকার নেই _যেহেতু n%3এই ক্ষেত্রে শূন্য ছিল তাই আমরা স্ট্যাকের নীচে অসীম শূন্যগুলিকে কাজে লাগাতে পারি। দু'টি পথ আবার হালকা নীল হয়ে দেখা দেয়।

হালকা নীল

স্ট্যাকের শীর্ষটি বর্তমানে রয়েছে n%3, যা ইতিবাচক হতে পারে, সুতরাং _;কেবল একটি শূন্যের দিকে ধাক্কা দেয় এবং তত্ক্ষণাত এটিকে পপ করে দেয় যে আমরা সরাসরি রূপান্তরিত না করে সরাসরি এগিয়ে চলেছি তা নিশ্চিত করার জন্য @। এরপরে আমরা =মূল এবং সহায়ক স্ট্যাকের শীর্ষগুলি অদলবদল করতে ব্যবহার করি :

Main [ n | n%3 n ] Aux

কমলা 2 (আধুনিক 5)

এটি শূন্য হলে 66.117.122:..আউটপুট বাদে আগের মতো একই অবস্থা ।Buzzn%5

গাঢ় নীল

পূর্ববর্তী বিভাগটি স্ট্যাকগুলি পছন্দ করে

Main [ n%5 | n%3 n ] Aux

{n%3মূল স্ট্যাকের দিকে পিছনে *স্থানান্তরিত করে এবং দুটি মডুলুকে গুণিত করে।

যদি কোনও মডিউল শূন্য হয় তবে পণ্যটি শূন্য হয় তাই আমরা সরাসরি হলুদ হয়ে যাই। =স্ট্যাকের শীর্ষটিকে অদলবদল করে এবং _শূন্যের দিকে ঠেলে দেয় যাতে নিশ্চিত হয়ে আমরা সরাসরি এগিয়ে যাচ্ছি giving

Main [ n 0 | 0 ] Aux

অন্যথায়, যদি উভয় মডুলো ননজারো হয় তবে পণ্যটি নানজারো হয় এবং আমরা ডানদিকে সবুজ হয়ে যাই। =স্ট্যাকের শীর্ষগুলি অদলবদল করে

Main [ n | (n%5)*(n%3) ] Aux

যার পরে আমরা :সদৃশ n, ডানদিকে ঘুরতে, এবং তারপরে !আউটপুট ব্যবহার করতে ব্যবহার করি n

রক্তবর্ণ

এই মুহুর্তে, প্রধান স্ট্যাকটিতে একটি বা দুটি আইটেম রয়েছে, যার উপর নির্ভর করে কোন পাথটি নেওয়া হয়েছিল। আমাদের হলুদ পথ থেকে শূন্য থেকে মুক্তি পেতে হবে এবং আমরা এটি ব্যবহার করি +যা n + 0উভয় ক্ষেত্রেই কিছুটা ক্রম করে order শেষ \অবধি , একটি নতুন লাইন আউটপুট দেয় এবং আমরা আবার শুরুতে ফিরে আসি।

প্রতিটি পুনরাবৃত্তি (n%5)*(n%3)অক্জিলিয়ারি স্ট্যাকের জন্য একটি অতিরিক্ত ধাক্কা দেয় , তবে অন্যথায় আমরা আবার একই জিনিসটি করি।


7
ব্যাখ্যা প্রেম।
The_Basset_Hound

29

পার্ল 5, 49 বাইট

46 বাইট স্ক্রিপ্ট + 3 বাইট -E"..."

say(যা প্রয়োজন -E"...") ব্যবহার করা এটিকে আরও 46 বাইটে হ্রাস করতে পারে যেহেতু sayস্বয়ংক্রিয়ভাবে একটি নতুন লাইন অন্তর্ভুক্ত রয়েছে (ধন্যবাদ @ ডেনিস !):

say'Fizz'x!($_%3).Buzz x!($_%5)||$_ for 1..100

পার্ল 5, 50 বাইট

print'Fizz'x!($_%3).Buzz x!($_%5)||$_,$/for 1..100

আপনি কয়েকটি বাইট ব্যবহার করে সংরক্ষণ করতে পারেন say
ডেনিস

আপনি স্কোরবোর্ডটি ভেঙে দিয়েছেন ...
LegionMammal978

পছন্দ করুন হ্যাঁ আমি করেছি ... আমি চেষ্টা করে আবার শিরোনামটি আবার লিখব! আহা!
ডম হেস্টিংস

-E"..."8 বাইট না ? স্পেস + ড্যাশ + বিকল্প + তর্ক (+ উদ্ধৃতি)।
এরিক দি আউটগল্ফার

1
@ এরিক্থে গল্ফার তাই যেহেতু আমি এটি পোস্ট করেছি, তাই conকমত্যটি -Eহল 0 বাইট, তবে যেহেতু প্রিমোর উত্তর উদ্ধৃতিগুলি ব্যতীত গোল হয়েছে, তাই আমি এটিকে ন্যায্য করে তুলতে চাই এবং আমার জন্য উদ্ধৃতিগুলি অন্তর্ভুক্ত করেছি এবং +1 এর জন্য -E। এটি নিখরচায় স্বীকৃত হওয়ার কারণটি হ'ল পার্ল সাধারণত চালিত হয় perl -eএবং perl -Eআর কোনও বাইট হয় না (আমি ভেবেছিলাম -M5.010বা use 5.010পাশাপাশি মুক্তও হতে পারি, তবে সম্ভবত মেটা পোস্টটি পুনরায় পাঠ না করা)। যুক্ত করার সময় -pবা -nএটিকে আপনার সাথে চালিত হিসাবে +1 হিসাবে গণনা করা হবে perl -pe। আশা করি এইটি কাজ করবে! মেটা রেফারেন্স: meta.codegolf.stackexchange.com/a/7539
ডম হেস্টিংস

27

রুবি, 50 বাইট

1.8 সংস্করণ প্রয়োজন যা গল্ফারদের মধ্যে জনপ্রিয় বলে মনে হচ্ছে:

1.upto(?d){|n|puts'FizzBuzz
'[i=n**4%-15,i+13]||n}

আধুনিক রুবিতে, আপনি একটি 51-বাইট সমাধানের ?dসাথে প্রতিস্থাপন করেন 100

এটি বিশ্ব রেকর্ড বলে মনে হচ্ছে।


1
এটি ডায়াবলিকাল, এটি ভালবাসা।
ক্যামডেন নার্জ্ট

?dঠিক হয় 100FizzBuzzস্ট্রিং এতে একটি newline আছে, এই রুবি মধ্যে বৈধ। string[i, s]একটি স্লাইস, অক্ষর থেকে শুরু i(0-সূচকযুক্ত), sঅক্ষরের জন্য চলছে , স্ট্রিংয়ের বাইরে নির্দেশিত সূচকগুলি উপেক্ষা করে। যদি যুক্তিটির putsইতিমধ্যে একটি নতুন লাইন থাকে তবে এটি কেটে ফেলা হয়। সূত্রটি কি পড়তে হবে সহজ? এটি এখানে সমস্ত কাজ করে। সত্যিকারের প্রো রুবি গল্ফারদের সাহায্য ছাড়া আমি এটি পেতাম না।
লিন

পার্শ্ব দ্রষ্টব্য: ইনপুট শুরুর সময় আপনাকে যদি 0 যুক্ত করার অনুমতি দেওয়া হয় (আপনি নন), ?e.timesপরিবর্তে ব্যবহার করে 2 বাইট সংরক্ষণ করা যেতে পারে ।
শেলভাকু

আপনি [i=n**4%-15,i+13]দয়া করে অংশটি ব্যাখ্যা করতে পারেন ? আমার মাথাটি এটির চারপাশে
জড়িত

2
@ পিককোলো এই স্নিপেট সাহায্য করে? যদি i==-14স্লাইস সীমার বাইরে থাকে তবে আমরা পাই nili==-9আমরা যদি i+13==49 তম অক্ষর থেকে শুরু করে অক্ষরগুলি টুকরো টুকরো করে ফেলেছি , তাই 'Fizz'। তাহলে i==-5আমরা 8 আবার শেষ থেকে 5 ম চরিত্র থেকে শুরু, তাই অক্ষর যেভাবেই 'Buzz\n'। (আমরা 8 টি টুকরো টুকরো করার চেষ্টা করি তবে সেখানে কেবল 5 জন রয়েছে, সুতরাং আমরা 5 পেয়ে থাকি) ce
লিন

26

জাভা, 130 বাইট

এটি সাম্প্রতিক জাভা সংস্করণগুলির জন্য (7+)। বয়স্কদের মধ্যে আপনি enumকৌতুকটি ব্যবহার করে আরও কিছুটা শেভ করতে পারেন , তবে আমি মনে করি না যুক্তিটি এর চেয়ে আরও ছোট হয়ে যায় (86 টি ভিতরে main)।

class F{public static void main(String[]a){for(int i=0;i++<100;)System.out.println((i%3<1?"Fizz":"")+(i%5<1?"Buzz":i%3<1?"":i));}}

আমি মনে করি না যে প্রারম্ভিক ব্লক কৌশলটি এখানে সহায়তা করে, যেহেতু প্রশ্নটি খালি স্টাডার নির্দিষ্ট করে r
শুক্রবার

হুম। আমি স্ট্যাডারকে স্ট্যাটিক ট্রিক প্রিন্ট জানি, তবে আমি ভেবেছিলাম এনাম পরিষ্কারভাবে দৌড়েছে। জেনে রাখা ভাল :)
Geobits

4
আমাকে 14 বাইট দ্বারা মার! <= 0 এর পরিবর্তে <1 ব্যবহার করা বাঁচানোর দুর্দান্ত উপায়!
ESP

2
class F{public static-> interface F{staticজাভা 8
TheNumberOne

1
এনামগুলি কীভাবে কাজ করে তা পুরোপুরি নয় । আপনাকে করতে হবে enum F{;public..., তাই আপনি আসলে কোনও বাইট সংরক্ষণ করবেন না।
হাইপারনিউটারিনো

23

পাইথ, 30

VS100|+*!%N3"Fizz"*!%N5"Buzz"N

এখানে চেষ্টা করুন

ব্যাখ্যা:

VS100|+*!%N3"Fizz"*!%N5"Buzz"N
VS100                            : for N in range(1,101)
     |                           : logical short-circuiting or
      +*!%N3"Fizz"               : add "Fizz" * not(N % 3)
                                 : Since not gives True/False this is either "" or "Fizz"
                  *!%N5"Buzz"    : Same but with 5 and Buzz
                             N   : Otherwise N
                                 : The output of the | is implicitly printed with a newline

23

রেটিনা , 317 139 134 132 70 63 60 55 বাইট

.100{`^
_
*\(a`(___)+
Fi;$&
\b(_{5})+$
Bu;
;_*
zz
'_&`.

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

ব্যাখ্যা

.100{`^
_

এটি .হ'ল বিশ্বব্যাপী নীরব পতাকা যা প্রোগ্রামের শেষে অন্তর্নিহিত আউটপুট বন্ধ করে দেয়। 100{প্রোগ্রামটির বাকি অংশটি একটি লুপে মোড়ক করে যা 100 টি পুনরাবৃত্তির জন্য কার্যকর করা হয়। পরিশেষে, স্টেজ নিজেই _স্ট্রিংয়ের শুরুতে একটি সন্নিবেশ করায় , যা কার্যকরভাবে একটি অবিচ্ছিন্ন লুপ কাউন্টারকে বাড়িয়ে তোলে।

*\(a`(___)+
Fi;$&

আরও কনফিগারেশন। *\(প্রোগ্রামের বাকী অংশগুলি একটি গোষ্ঠীতে আবৃত করে, তার ফলাফলটি একটি পিছনের লাইনেফিড দিয়ে মুদ্রণ করে, তবে পুরো গ্রুপটিকে একটি শুকনো দৌড়ে রাখে, যার অর্থ মুদ্রণের পরে এর ফলাফলটি বাতিল করা হবে, যাতে আমাদের লুপের কাউন্টারটি আসলে পরিবর্তিত হয় না । aহ'ল একটি কাস্টম রেজেক্স মোডিফায়ার যা পুরো স্ট্রিংয়ে রেগেক্সকে অ্যাঙ্কার করে (যা ব্যবহারে ^এবং $স্পষ্টভাবে একটি বাইট সংরক্ষণ করে )।

পরমাণু পর্যায় নিজেই যত্ন নেয় Fizz। দ্বারা বিভাজনটি 3সহজেই অ্যানারিতে যাচাই করা যায়: কেবলমাত্র পরীক্ষার সংখ্যাটি পুনরাবৃত্তি হিসাবে লেখা যেতে পারে কিনা তা পরীক্ষা করুন ___। যদি এটি হয় তবে আমরা Fi;স্ট্রিংকে প্রিপেন্ড করি । সেমিকোলনটি যাতে পরবর্তী স্তরের জন্য সংখ্যার সামনে একটি শব্দের সীমা থাকে। যদি আমরা রেখাকে Fizz___...মাঝখানে অবস্থানে রূপান্তরিত করি zএবং _এটি একটি সীমানা হিসাবে বিবেচিত হবে না, কারণ রেজেক্স উভয় অক্ষর এবং আন্ডারস্কোরগুলিকে শব্দের অক্ষর হিসাবে বিবেচনা করে। তবে সেমিকোলন আমাদের zzথেকে Fizzএবং থেকে সদৃশতা সরাতেও সহায়তা করে Buzz

\b(_{5})+$
Bu;

আমরা দ্বারা বিভাজ্যতা জন্য সঠিক একই কাজ 5এবং Bu;যদিও আমরা রাখা প্রয়োজন হবে না, _এই সময় প্রায় সে। সুতরাং আমরা মত একটি ফলাফল পেতে হবে

_
__
Fi;___
____
Bu;
Fi;______
...
Fi;Bu;
...

এটি কেবলমাত্র সেই লাইনে থাকা আন্ডারস্কোরগুলি থেকে মুক্ত হওয়া খুব সহজ করে তোলে এসটি Fizzপূরণ করার সময় zz:

;_*
zz

এটি হ'ল আমরা প্রতিটি সেমিকোলনকে রূপান্তরিত করি zzতবে এর পরে আমরা সমস্ত _গুলি ব্যবহার করি। এই মুহুর্তে আমরা আনরিয়ায় ফিজবজ দিয়ে শেষ করেছি। তবে চ্যালেঞ্জটি দশমিক আউটপুট চায়।

'_&`.

&শর্তসাপেক্ষ নির্দেশ করে: স্ট্রিংটিতে আন্ডারস্কোর রয়েছে তবেই এই পর্যায়টি কার্যকর করা হয়। অতএব, Fizz, Buzzএবং FizzBuzzপুনরাবৃত্তিও অস্পৃষ্ট বামে হয়। অন্যান্য সমস্ত পুনরাবৃত্তিতে (অর্থাত্ যেগুলি 3 বা 5 দ্বারা বিভাজ্য নয়) আমরা কেবলমাত্র অক্ষরের সংখ্যা গণনা করি, ফলাফলকে দশমিক হিসাবে রূপান্তরিত করি।


20

জিএস 2 ,

f

জিএস 2 এর স্রষ্টা, মৌরিসের একটি উদ্ধৃতি :

আমি গুরুবির 1-বাইট ওয়ান আপ করতে চেয়েছিলাম Hello, world!, তাই ... এই মুদ্রণ "1\n2\nFizz\n4\nBuzz\n..."। :)

আপডেট : 27-বাইট উত্তর যুক্ত করা হয়েছে যা ব্যবহার করে না f


20

পার্ল 5, 45 বাইট

say((Fizz)[$_%3].(Buzz)[$_%5]or$_)for+1..100

-Eএক হিসাবে গণনা করা বিকল্প প্রয়োজন । এটি অবশ্যই কমান্ড লাইন থেকে চালানো উচিত:

perl -Esay((Fizz)[$_%3].(Buzz)[$_%5]or$_)for+1..100

যদি এক স্পেস, বা অন্য কোন অক্ষর যা কমান্ড লাইন বিভাজক হিসাবে (কাজ করতে পারেন ব্যবহার এড়াতে কমান্ড প্রায় কোট, অপ্রয়োজনীয় হয় |, <, >, &, ইত্যাদি)।


পার্ল 5, 48 বাইট

print+(Fizz)[$_%3].(Buzz)[$_%5]||$_,$/for 1..100

কমান্ড লাইন বিকল্পগুলি যদি প্রত্যেকে একটি হিসাবে গণনা করা হয় তবে -lএকটি বাইট সংরক্ষণ করে (প্রতিস্থাপন করে $/)। দ্বারা ক্লাসিক Perlgolf রুলস জন্য এক: যাইহোক, এই 3 গণনা হবে -, এক l, এবং প্রয়োজনীয় স্থান জন্য।


আপনি সুইচটি sayদিয়ে ব্যবহার করতে পারেন , -Eযা সম্পাদনা করতে দূরত্ব 1 থেকে 1 পর্যন্ত রয়েছে -e, সুতরাং এটি 1 বাইট হিসাবে গণনা করা উচিত।
ডেনিস

আরে প্রিমো, আমার মনে হচ্ছে আমি ব্যবহারের জন্য আমার উত্তরে প্রতারণা করছি say, আমি ধরে নিয়েছি যে এটির -Eজায়গায় ব্যবহার করা যেতে পারে -eযা আপনাকে 46 এর পরিবর্তে 44 এ নামিয়ে দেবে I আপনার কাছে আলাদাভাবে, পছন্দের স্কোরিং প্রক্রিয়াটি কী? আমি সাধারণত printএড়াতে ব্যবহার করি ! Aকমত্যের নিকটতমতম এই কি হবে ?
ডম হেস্টিংস

আমার ব্যক্তিগত গ্রহণযোগ্যতা হ'ল কমান্ড লাইনের প্রতিটি অতিরিক্ত বাইটের স্কোর 1 হওয়া উচিত particular বিশেষত sayআপনার কোডটি কোনও ওএস বিভাজককে এড়িয়ে কোনও লাইনে লেখা যেতে পারে তবে এর জন্য 1 স্কোর করুন -E। আপনার যদি উক্তিগুলি ব্যবহার করতে হয়, যেমন -E"$a||$b", স্কোর ৩ 3 -M5.01. তবে এই মুহুর্তে আপনি সম্ভবত ব্যবহার করা ভাল -l। আমি সম্মত হই না যে এটি ডিফল্টরূপে বিনামূল্যে হওয়া উচিত, দুটি কারণে: 1) উন্নতি তুচ্ছ এবং উদ্বেগজনক এবং 2) দোভাষীটির কোনও সংস্করণ নেই যার জন্য এটি ডিফল্টরূপে সক্ষম করা হয়েছে।
primo

20

মোম ,104 89 81 বাইট

ডেনসর প্যাকিংয়ের জন্য আরও 8 টি বাইট কাটা যাবে।

সংক্ষিপ্ততম সমাধান (81 বাইট), একই প্রোগ্রাম প্রবাহ, বিভিন্ন প্যাকিং।

p?@<
p?{@b'gA<
p@`zzuB`d'%~5F@<f`z`<
 >~P"#"_"1F3~%'d`Fiz`b
 d;"-~@~.<
>?N@9P~0+d

ধারণাটি পরিবর্তন করা আমাকে 15 বাইট দ্বারা কোডটি কাটাতে সক্ষম করে। আমি সমাধানে ডাবল মোড 5 পরীক্ষা থেকে মুক্তি পেতে চেয়েছিলাম, তাই আমি একটি পতাকা প্রয়োগ করেছি।

সংক্ষিপ্ত ব্যাখ্যা:

যদি n%3=0ফিজ মুদ্রিত হয় এবং পতাকাটি সেট হয়ে যায়। শীর্ষস্থানীয় লাস্টাক মানটি জিস্ট্যাকের (নির্দেশ f) উপর চাপিয়ে দিয়ে সহজেই পতাকাটি উপলব্ধি করা যায় ।

যদি হয় n%5=0, তবে হয় n%3=0(ফিজবজ মামলা) বা n%3>0( বাজেস কেস)। উভয় ক্ষেত্রেই বাজ মুদ্রিত হয়ে যায় এবং শূন্যটি (নির্দেশনা ?) না হওয়া পর্যন্ত স্ট্যাকটি পপিং করে পতাকাটি পুনরায় সেট করে ।

আকর্ষণীয় ঘটনা:

যদি n%5>0, তবে হয় আমাদের n%3=0(Fizz কেস মুদ্রণ করা উচিত, এন অবশ্যই প্রিন্ট করা উচিত নয়) বা n%3>0(Fizz প্রিন্ট করা হয়নি, তাই এন মুদ্রণ করতে হবে)। পতাকা চেক করার সময়। Gstack (নির্দেশনা A) এর উপরে gstack এর দৈর্ঘ্যকে চাপ দিয়ে এটি উপলব্ধি করা যায় । তাহলে n%3 was 0গস্টাকের দৈর্ঘ্য> 0 হয়। যদি n%3 was >0, গস্টাকের দৈর্ঘ্য 0 হয় তবে একটি সাধারণ শর্তসাপেক্ষ জাম্প নিশ্চিত করে যে কেবলমাত্র জিস্ট্যাকের দৈর্ঘ্য 0 ছিল তবে মুদ্রিত হবে।

আবার যে কোনও এন, ফিজ, এবং / বা বাজ এবং নিউলাইন প্রিন্ট করার পরে, খালিটি খালি আছে তা নিশ্চিত করার জন্য দুটি বার পপ হয়ে যায়। gstack হয় ফাঁকা [], যা [0]নির্দেশের পরে বাড়ে A(gstack এর উপর Gstack দৈর্ঘ্য ধাক্কা) বা এটিতে একটি শূন্য রয়েছে ( [0], n% 3 এর ফলাফল), যা বাড়ে [0 1], [0] এর দৈর্ঘ্য ১. একটি থেকে পপিং খালি স্ট্যাক স্ট্যাকটি পরিবর্তন করে না, তাই এটি দুটিবার পপ করা নিরাপদ।

আপনি যদি কাছাকাছি তাকান তবে আপনি নীতিগতভাবে এটি দেখতে পারেন I

>      q
d`Fizz`f>

মধ্যে

<f`z`<
d`Fiz`b

যার মধ্যে সব বরবাদ স্থান পরিত্রাণ পেতে সাহায্য করে Aএবং <নিচে পুরোনো সমাধান নিম্নলিখিত সারির শেষে হয়:

q?{@b'gA<       p      <

অ্যানিমেটেড ব্যাখ্যাসহ নতুন ধারণা সমাধান (89 বাইট):

q?@ <
 q?{@b'gA<       p      <
p?<@`zzuB`b'%~5F@<f`zziF`b'<
>N@9P~0+.~@~-";~P"#"_"1F3~%d

ষড়ভুজীয় বিন্যাস:

   q ? @   <
    q ? { @ b ' g A <               p             <
 p ? < @ ` z z u B ` b ' % ~ 5 F @ < f ` z z i F ` b ' <
> N @ 9 P ~ 0 + . ~ @ ~ - " ; ~ P " # " _ " 1 F 3 ~ % d

স্থানীয় এবং বিশ্বব্যাপী স্ট্যাক সহ 2 এফপিএসে প্রথম 326 টিকের অ্যানিমেশন এবং STDOUT এ আউটপুট।

মোম মোম ফিজবজ অ্যানিমেশন


তুলনার জন্য, নীচে পুরানো, আরও জটিল সমাধানের পাথ ওভারলেগুলি রয়েছে। ভিজ্যুয়াল দৃষ্টিকোণ থেকে এটি সম্ভবত সুন্দর সমাধান;)

পাথ ওভারলে সহ প্রোগ্রাম


2
এটি হেক্সাগনির মতোই উন্মাদ এবং সুন্দর। একটি +1 আছে!
ইটিএইচ প্রডাকশনগুলি

@ ইথ প্রডাকশনগুলি এখনও আমাকে হেক্সাগনিকে একবার চেষ্টা করে দেখার দরকার, তবে ভাষা বর্ণমালা থেকে আমি যা বলতে পারি তা থেকে আমার বীস মোম এমনকি হেক্সাগনির উন্মত্ততার কাছে আসে না।
এমএল


আপনি কীভাবে এই অ্যানিমেশন তৈরি করছেন?
baordog

18

> <> , 68 66 65 64 বাইট

1\2+2foooo "Buzz"<
o>:::3%:?!\$5%:?!/*?n1+:aa*)?;a
o.!o"Fizz"/oo

সংখ্যাটি মুদ্রণের শর্ত হিসাবে অবশিষ্টদেরকে গুণিত করা একমাত্র কৌশল। এইভাবে, যদি তাদের মধ্যে একটি 0 হয় তবে আমরা সংখ্যাটি প্রিন্ট করব না।

আপনি এটি এখানে চেষ্টা করতে পারেন ।

Sp3000 এবং একটি র্যান্ডম্রা ধন্যবাদ অন্য একটি বাইট সংরক্ষণ করা। অনেক ধন্যবাদ!


1
খুব ভাল গল্ফড, আমি প্রথম লাইনে "\" এবং দ্বিতীয় লাইনের একটি পুনরায় ব্যবহার করতে পছন্দ করি love
কোলে

1
-1 বাইট আপনি যদি oদ্বিতীয় লাইনের শেষের দিকে লাইনের শুরুতে খালি জায়গায় যান তবে আমি বিশ্বাস করি।
Sp3000

@ এসপি 3000 সত্যই, আমি এই গল্ফ করে অনেক সময় ব্যয় করেছি জানি না কীভাবে এটি মনে আসেনি
হারুন

1
আপনার যখন থাকতে পারে তখন কার কাছে ফিজ বাজ দরকার foooo Buzz?
সিয়ার্ড কোইনরিঙ্গিংহিং

17

gs2 , 28 27 (ছাড়া f)

হেক্স:

1b 2f fe cc 04 46 69 7a 7a 09 07 42 75 7a 7a 19 06 27 2d d8 62 32 ec 99 dc 61 0a

ব্যাখ্যা:

1b    100
2f    range1 (1..n)
fe    m: (map rest of program)

cc    put0 (pop and store in register 0)
04    string-begin
Fizz
09    9
07    string-separator
Buzz
19    25
06    string-end-array (result: ["Fizz"+chr(9) "Buzz"+chr(25)])

27    right-uncons
2d    sqrt
d8    tuck0 (insert value of register 0 under top of stack)
62    divides
32    times (string multiplication)
ec    m5 (create block from previous 5 tokens, then call map)

99    flatten
dc    show0 (convert register 0 to string and push it)
61    logical-or
0a    newline

স্ট্রিং ধ্রুবকটিতে 3 এবং 5 এম্বেড করা কাজ করে না কারণ \x05স্ট্রিং লিটারালগুলি শেষ হয়।

দ্রষ্টব্য: এই সমস্যাটি বিল্ট-ইন ব্যবহার করে জিএস 2 দিয়ে 1 বাইটে সমাধান করা যেতে পারে f


16

সি, 85 বাইট

i;main(){for(;i++<=99;printf("%s%s%.d\n",i%3?"":"Fizz",i%5?"":"Buzz",(i%3&&i%5)*i));}

-2 কৃত্রিম ধন্যবাদ।


এখানে সংকলনের চেষ্টা করছে কিন্তু gccস্ট্রিংয়ের ভিতরে নতুন লাইনটিকে \ n হিসাবে স্বীকৃতি দেয় না। এটি আমাকে একটি সংকলন ত্রুটি দেয়। আমার কি কম্পাইলারটিতে কোনও পরামিতি পাস করার দরকার আছে? বিটিডাব্লু, আপনি <=আপনার পোস্টটিতে মিস করেছেন (আমি 88 বাইটগুলি <= দিয়ে গণনা করেছি ... সুতরাং অনুমান করি এটি অনুপস্থিত)।
wendelbsilva

উফ। সতর্কতা ত্রুটি মিস। 2 টি অক্ষর যুক্ত করে।
এশেলি

গ্লোবাল ভেরিয়েবলগুলি শূন্যে আরম্ভ করা হয়, তাই পরিবর্তে main(i)চেষ্টা করুন i;main()। তারপরে আপনি লুপের i--শুরুতে মুক্তি পেতে পারেন for()। আপনারও লাইন ব্রেক দরকার নেই। যে বাইট আনা উচিত 85. নিচে গণনা
খুঁতখুঁতে ossifrage

2
আপনি যে ইউবি পেতে চান তার উপর নির্ভর করে আপনি 73, 74 বা 75 বাইট করতে পারেন। এখানে আমার 74 বাইট উত্তর
লিন

1
ওএমজি আমি এই জিনিসটি কেবল একটি বাইট আরও ছোট পাওয়ার জন্য 3 ঘন্টা ব্যয় করেছি। আপনি এখানে যান। আমি বিছানায় যাচ্ছি তার (i%3&&i%5)*iসাথে প্রতিস্থাপন করুনi%3*i%5?i:0
অ্যালবার্ট রেনশো

16

সিজেম, 35 বাইট

100{)_[Z5]f%:!"FizzBuzz"4/.*s\e|N}/

সিজেএম ইন্টারপ্রেটারে এটি অনলাইনে চেষ্টা করুন ।

কিভাবে এটা কাজ করে

100{)_[Z5]f%:!"FizzBuzz"4/.*s\e|N}/
100{                             }/  For each integer I between 0 and 99:
    )_                                 Increment I and push a copy.
      [Z5]                             Push [3 5].
          f%                           Map % to push [(I+1)%3 (I+1)%5].
            :!                         Apply logical NOT to each remainder.
              "FizzBuzz"4/             Push ["Fizz" "Buzz"].
                          .*           Vectorized string repetition.
                            s\         Flatten the result and swap it with I+1.
                              e|       Logical OR; if `s' pushed an empty string,
                                       replace it with I+1.
                                N      Push a linefeed.

3
আরও সোজা সমাধান:100{):I3%!"Fizz"*I5%!"Buzz"*+Ie|N}/
aditsu

16

এমএমপিএস, 56 54 বাইট

f i=1:1:100 w:i#5=0 "Fizz" w:i#3=0 "Buzz" w:$X<3 i w !

এই কি w:$X<3 iজিনিস, আপনি জিজ্ঞাসা? $Xহ'ল একটি ম্যাজিক ভেরিয়েবল (একটি "অন্তর্নিহিত") যা আউটপুট কার্সারের অনুভূমিক অবস্থান সংরক্ষণ করে (টার্মিনালের বাম প্রান্ত থেকে অক্ষরের সংখ্যা হিসাবে)। কমান্ডটির wসংক্ষিপ্ত রূপ WRITE। বাক্যবিন্যাস command:condition argsএকটি পোস্টকন্ডিশনাল - "যদি condition, তবে কর command args"।

সুতরাং আমরা পরীক্ষা করছি যে আউটপুট কার্সারটি দুটি অক্ষরেরও বেশি উন্নত হয়েছে (যার অর্থ কমপক্ষে একটিতে "Fizz"বা "Buzz"টার্মিনালে লিখিত হয়েছে), এবং যদি না iহয় তবে টার্মিনালে লিখছি । $Xপরিবর্তনশীল - এবং তাই, টার্মিনাল থেকে গভীর অবিচ্ছেদ্যতা এই সাজানোর - মাম্পস একটি প্রথম শ্রেণীর বৈশিষ্ট্য। বাবা।


15

জেলি , 24 20 বাইট

³µ3,5ḍTị“¡Ṭ4“Ụp»ȯµ€G

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

কিভাবে এটা কাজ করে

³µ3,5ḍTị“¡Ṭ4“Ụp»ȯµ€G  Main link. No input.

³                     Yield 100.
 µ                    Begin a new, monadic chain.
                 µ€   Apply the preceding chain to all integers n in [1, ..., 100].
  3,5ḍ                Test n for divisibility by 3 and 5.
      T               Get all truthy indices.
                      This yields [1] (mult. of 3, not 5), [2] (mult. of 5, not 3),
                      [1, 2] (mult. of 15) or [].
        “¡Ṭ4“Ụp»      Yield ['Fizz', 'Buzz'] by indexing in a dictionary.
       ị              Retrieve the strings at the corr. indices.
                ȯ     Logical OR hook; replace an empty list with n.
                   G  Grid; join the list, separating by linefeeds.

আবার কেউ কিছু জানতে ডেনিস golfed (HQ9 + + শৈলী উত্তরের জন্য ব্যতীত)
noɥʇʎԀʎzɐɹƆ

15

ব্রেনফাক, 206 বাইট

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

বিন্যাসকৃত:

++>+++++>>>>>
++++++++++[>+>>+>>+>+<<<[++++<-<]<,<,-<-<++<++++[<++>++++++>]++>>]
>
[
  +
  [
    [<<]
    <[>>]
    +++<
    [
      Fizz
      <.<.<..
      [>]
    ]
    <<-
    [
      >>>
      [
        ,>>[<]
        >[--.++<<]
        >
      ]
    ]
    +++++<
    [
      Buzz
      +[-----.++++<<]
      >>+..
      <-
      [>]
    ]
    <[->>,>+>>>->->.>]
    <<
  ]
  <[>+< <<,<->>>+]
  <
]

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

স্মৃতি বিন্যাসটি হ'ল

0 a 122 105 70 b f 0 t d1 s d2 c d 10 0

যেখানে f3 দ্বারা চক্র, b5 দ্বারা চক্র, d1বেশী অঙ্ক হল d2, দশ ডিজিট sহয় দশ অঙ্ক প্রিন্ট করা হবে কিনা তা একটি পতাকা, d10 দ্বারা চক্র, cজন্য কপি স্থান d, tকাজ করছে স্থান যে 0 বা আবর্জনা ডেটা বা না করার জন্য একটি পতাকা ঝুলিতে -ভাগ-দ্বারা -3, এবং aবাজ 20 বার মুদ্রিত হওয়ার পরে পয়েন্টারটি অফসেট করে প্রোগ্রামের সমাপ্তি নির্ধারণ করে।


14

সি #, 128 126 125 124 বাইট

class A{static void Main(){for(var i=0;i++<100;)System.Console.Write("{0:#}{1:;;Fizz}{2:;;Buzz}\n",i%3*i%5>0?i:0,i%3,i%5);}}

চারপাশে বয়লারপ্লেট কোড ছাড়াই 89 বাইট tes

সি # এর শর্তসাপেক্ষ বিন্যাসের ব্যবহার শেষ হয়েছে

দুটি বিভাগ বিভাজক সহ ;, ফিজ বা বাজ মুদ্রণ করা হয় যদি তাদের অবস্থার মানটি শূন্য হয়।


@ রবারডাক, @ টিমউই এবং @ রিওকমিজকে ধন্যবাদ দিয়ে মোট 4 বাইট সংরক্ষণ করা হয়েছে।


Writeস্ট্রিংয়ে সরাসরি সরাসরি নতুন লাইনে কল করা এবং সংযুক্ত করা সংক্ষিপ্ত হবে ?
রাবারডাক

এটি i%3*i%5>0?i:0পরিবর্তে লিখতে এক বাইট খাটো i%3*i%5==0?0:i
টিমভি

আপনি forবিবৃতিতে অন্য একটি বাইট সংরক্ষণ করতে পারেনfor(var i=0;i++<100;)
নাজকিন

1
আপনি উপজীব্য করে তিনটি বাইট সংরক্ষণ করতে পারবেন স্ট্রিং ক্ষেপক স্ট্রিং নিজেই মধ্যে সি # 6.0 থেকে এবং বিন্যাস আর্গুমেন্ট এম্বেডিং (যেমন $"{(i%3*i%5>0?i:0):#}...\n")
LiamK

1
আজ 121 বাইট দিয়ে করতে পারেন -class A{static void Main(){for(var i=0;i<100;)System.Console.Write($"{(++i%3*i%5<1?0:i):#}{i%3:;;Fizz}{i%5:;;Buzz}\n");}}
জেরি কঙ্গাসনিমি

14

ক্লোজার, 113 106 101 100 91 বাইট

আমার প্রথম গল্ফ!

(dotimes[i 100](println(str({2'Fizz}(mod i 3))({4'Buzz}(mod i 5)({2""}(mod i 3)(inc i))))))

Ungolfed:

(dotimes [i 100] ; account for off-by-one later
  (println (str ({2 'Fizz} ; str converts symbols to strings
                 (mod i 3))
                ({4 'Buzz} ; 4 instead of 0 because of off-by-one
                 (mod i 5)
                 ({2 ""} ; shortest way to write when-not
                  (mod i 3)
                  (inc i))))))

1
আপনি জাভা সমাধানেরprintln মতো একইভাবে পরিচালনা করে 5 টি অক্ষর মুছে ফেলতে পারেন , যেমন। (doall(map #(let[t(=(mod % 3)0)](println(str(if t"Fizz""")(if(=(mod % 5)0)"Buzz"(if t""%)))))(range 1 101)))
পুনরাবৃত্তি

1
@ রিয়েউম্যান ধন্যবাদ! এটি আসলে 7 এর সমাপ্তি, কারণ এতে (if t"Fizz""")সরলীকৃত করা যেতে পারে (if t"Fizz")। :)
স্যাম এস্তেপ

+1 সুন্দর মডুলো ট্রিক, প্রথমে আমি যদিও আপনার বাইরের ত্রুটি ছিল।
coredump

14

ব্রেনফাক , 411 350 277 258 বাইট

সম্পাদনা:

  • "ফিজ বাজ " এর মানগুলিকে "বুজিএফ" "বুজিজি" হিসাবে সংরক্ষণ করে এবং সংখ্যা মুদ্রণ বিভাগটি পুনরায় করে -১61 বাইট।

  • -১o বাইটগুলি মডুলো নম্বর মুদ্রণ বিভাগটি পুনরায় করা, লুপের কাউন্টার এবং নম্বর কাউন্টারকে বিভক্ত করে এবং নিউলাইন সেলটিকে মোড মান হিসাবে পুনরায় ব্যবহার করে অন্যান্য জিনিস

  • -19 বাইটগুলি বুঝতে পেরে যে কোনও ফিজবজ নম্বরে কোনও 0 টি নেই। ব্যাখ্যাও যুক্ত করেছেন

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

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

সংখ্যাটি নিজেই 5 বা 3 দ্বারা বিভাজ্য কিনা তা যাচাইয়ের পরিবর্তে আমার কাছে দুটি কাউন্টার ছিল যে সংখ্যার মডুলোর খোঁজ রাখা ছিল, প্রতিটি সংখ্যার জন্য সেগুলি হ্রাস করে এবং তারা 0 এ পৌঁছানোর সাথে সম্পর্কিত শব্দটি মুদ্রণ করে।

কিভাবে এটা কাজ করে:

+[-[>+<<]>-]>--  Generate the number 61
[>+>++>++>++++++>+>>>++++++[<<<]>-] Set the tape to multiples of 61
TAPE: 0 0' 61  122 122 110 61  0 0 110
           "=" "z" "z" "n" "="
<+++++[>+>+>->>->++>>>-->>>++[<<<]>>>-]>[>]+++>> Modify values by multiples of 5
TAPE: 0' 5 66  117 122 105 71  3 0 100' 0 0 10
           "B" "u" "z" "i" "G"
Some info:
  5     - Buzz counter
  "Buz" - Buzz printing
  "ziG" - Fizz printing. Modifying the G in the loop is shorter than modifying it outside
  3     - Fizz counter
  0     - This is where the Fizz|Buzz check will be located
  100   - Loop counter
  0     - Number counter. It's not worth it to reuse the loop counter as this.
  0     - Sometimes a zero is just a zero
  10    - Value as a newline and to mod the number by

[ Loop 100 times
  >+<<<  Increment number counter
  -[<]<  Decrement Fizz counter
  [ If Fizz counter is 0
    >+++ Reset the Fizz counter to 3
    >+<< Set the Fizz|Buzz check to true
    -.+<.<.. Print "Fizz"
  [<]<] Sync pointers
  >>-[<<]> Decrement Buzz counter
  [ If Buzz counter is 0
    .>.>.. Print "Buzz"
    >>>>+  Set the Fizz|Buzz check to true
    [<]+++++< Reset the Buzz counter to 5
  ]
  >[>]>> Go to Fizz|Buzz check
  [ If there was no Fizz or Buzz for this number
    TAPE: 3% BuziG 5% 0 Loop Num' 0 10
    [->+>-[>+>>]>[+[-<+>]>+>>]<<<<<<]  Mod the number counter by 10
    TAPE: 3% BuziG 5% 0 Loop 0' Num 10-Num%10 Num%10 Num/10
    >[-<+>] Move Num back in place
    >,>[>]< Reset 10-Num%10
    [ For both Num/10 (if it exists) and Num%10
      >-[<+>-----]<--- Add 48 to the number to turn it into the ASCII equivilent
      .,< Print and remove
    ]
    ++++++++++> Add the 10 back
  ]
  <. Print the newline
  <<<<, Remove Fizz|Buzz check
  >- Decrement Loop counter
]

ভাল কাজ জো! আমি হয়ত কোনওদিন তাকে হারাতে চেষ্টা করব :)
ফরেন্ট ভিন্টিয়ার

13

পাওয়ারশেল, 78 68 61 54 বাইট

1..100|%{(($t="Fizz"*!($_%3)+"Buzz"*!($_%5)),$_)[!$t]}

সম্পাদনা করুন: ফেয়ারসামের জন্য 10 বাইট সংরক্ষণ করা হয়েছে

সম্পাদনা 2: বুঝতে পেরেছি যে ফেয়ারসামের কৌতুকের সাথে, আমার আর কোডিং-ব্লকের স্ট্রিং হিসাবে $ t গঠনের দরকার নেই

সম্পাদনা 3: ড্যাঙ্কো দুর্বিয়কে ধন্যবাদ দিয়ে আরও 7 বাইট সংরক্ষণ করা হয়েছে ć

স্টক রোসেটা কোড উত্তরের অনুরূপ-ইশ , তবে বেশ খানিকটা নিচে নামল।

ব্যাখ্যা

1..100|%{...} 1 এর মাধ্যমে 100 এর সংগ্রহ তৈরি করুন, তারপরে সেই সংগ্রহে প্রতিটি বস্তুর জন্য করুন do

(...,$_)দুটি উপাদানের একটি নতুন সংগ্রহ তৈরি করুন: 0) একটি স্ট্রিংয়ের সমান $t=...ভেরিয়েবল সেট করুন $t; 1) $_আমাদের বর্তমানের লুপের সংখ্যা

"Fizz"*!($_%3)আমাদের বর্তমানের নম্বরটি নিন, এটি 3 দ্বারা মোড করুন, তারপরে ফলাফলটি নয়। এর দ্বারা "ফিজ" গুন করুন এবং এটিকে স্ট্রিংয়ে যুক্ত করুন (এবং 5 এর জন্য অনুরূপ)। পাওয়ারশেল যে কোনও শূন্য নম্বরের সাথে গণ্য করে $TRUEএবং এইভাবে একটি শূন্য নম্বরের সংখ্যাটি 0 হয় না, যার অর্থ কেবলমাত্র যদি আমাদের বর্তমান-সংখ্যাটি 3 এর একাধিক হয় তবে "ফিজ" স্ট্রিংটিতে যুক্ত হবে।

[!$t]স্ট্রিংয়ের মানের উপর ভিত্তি করে আমরা সবেমাত্র তৈরি করা সংকলনের সূচিগুলি $t- খালি নয়, এটি মুদ্রণ করুন, অন্যথায় আমাদের বর্তমান সংখ্যাটি মুদ্রণ করুন


বিকল্পভাবে, এছাড়াও 54 বাইট

1..100|%{'Fizz'*!($_%3)+'Buzz'*!($_%5)-replace'^$',$_}

TesselatingHeckler ধন্যবাদ

ধারণা মতো একই, এটি আমাদের-বর্তমান-সংখ্যার সাথে -replaceএকটি খালি স্ট্রিং আউটপুট আনার জন্য ইনলাইন অপারেটর এবং একটি নিয়মিত এক্সপ্রেশন ব্যবহার করে ^$। যদি স্ট্রিংটি খালি না থাকে তবে এটি অদলবদল হয় না।


বিকল্পভাবে, এছাড়াও 54 বাইট

1..100|%{($_,('Fizz'*!($_%3)+'Buzz'*!($_%5))|sort)[1]}

এটি উপরের মতো একই লুপ কাঠামো, তবে এটির ভিতরে জোড় (এন, স্ট্রিং) বাছাই করে এবং এটি নির্ভর করে যে একটি খালি স্ট্রিং একটি সংখ্যার আগে বাছাই করে, তবে একটি ফিজবজ স্ট্রিং একটি সংখ্যার পরে সাজায়। তারপরে এটি দ্বিতীয় সাজানোর ফলাফলকে সূচক করে।


অন্যদিকে, যদি পাওয়ার শেল কখনও ||অপারেটরকে সি # এর মতো কার্যকর করে , তবে আমরা সম্ভবত 43 টি বাইটে নেমে যেতে পারতাম এরকম কিছু 1..100|%{"Fizz"*!($_%3)+"Buzz"*!($_%5)||$_}... সন্দেহজনক, যেহেতু |পাওয়ারশেলের এমন একটি বিশেষ বিশেষ অপারেটর, তবে আমি স্বপ্ন দেখতে পারি ...
অ্যাডমবর্কবার্ক

1
1..100|%{'Fizz'*!($_%3)+'Buzz'*!($_%5)-replace'^$',$_}54 সম্পর্কে কিভাবে ?
টেসেল্ল্যাটিংহেকলার

আপনি এর if($t){$t}else{$_}মতো কিছু দিয়ে প্রতিস্থাপন করতে পারেন($t,$_)[!$t]
ডানকো দুর্বি ć

1
... সুতরাং আপনি 1..100|%{(($t="Fizz"*!($_%3)+"Buzz"*!($_%5)),$_)[!$t]}যা পেয়েছেন @
টেসেল্লাটিংহেকলারের

পছন্দ করুন
অ্যাডমবর্কবার্ক

13

জাভাস্ক্রিপ্ট, 62 বাইট

for(i=0;++i<101;console.log(i%5?f||i:f+'Buzz'))f=i%3?'':'Fizz'

আমি মনে করি আমি এটি এখন সংক্ষিপ্ততর জাভাস্ক্রিপ্ট সমাধান।


সত্যিই চমৎকার! তবে অন্য সমস্ত জেএস উত্তর ব্যবহার করে console.log; একটানা ১০০ টি পপ-আপ বাক্সে "ওকে" টিপানোর চেয়ে এটি খুব কম বিরক্তিকর। আপনি কি এটি পরিবর্তন করতে পারেন? এটি মাত্র 62 বাইট হবে, আমার থেকে তিনটি আরও ভাল।
ETH প্রোডাকশনস

আমাকে আগামীকাল তা করতে হবে, যেহেতু আমি ইতিমধ্যে আমার নিজের 5 টি পোস্ট সম্পাদনা করেছি এবং আর সম্পাদনা করতে পারছি না ...
মামা ফান রোল

2
ওহ, আমি বুঝতে পারি না সম্পাদনার সীমাবদ্ধতা ছিল ...
ETH প্রোডাকশনগুলি

12

সি, 74 বাইট

main(i){for(;i<101;puts(i++%5?"":"Buzz"))printf(i%3?i%5?"%d":0:"Fizz",i);}

এর পরিবর্তে 0যুক্তিটি ফিশ করে তবে বেশিরভাগ প্ল্যাটফর্মগুলিতে আমি এটি ব্যবহার করে দেখে মনে হচ্ছে। আপনি একই জিনিস চেষ্টা করার পরে segfaults। এটি ছাড়া, আপনি 75 বাইট পাবেন।printf""puts

অরাজকতা গল্ফের জন্য কাজ করে এমন 73৩-বাইট সমাধান রয়েছে এবং আমি একটি ইন্টারনেটে সঠিক জায়গায় খনন করতে দেখেছি, তবে তারা প্ল্যাটফর্ম-নির্দিষ্ট আচরণের উপর নির্ভর করে। (আপনি যেমন অনুমান করতে পারেন, এটি ফর্মের কিছু puts("Buzz"±...))


কোনও আরগস মামলার জন্য আই = 1 পাওয়ার জন্য দুর্দান্ত কৌশলটি (আরজিসি = 1)। এটি একটি বৈশিষ্ট্য: আপনি চলমান যে কোনও বিন্দু থেকে ক্রম শুরু করতে পারেন ./fizzbuzz $(seq 40): পি
পিটার কর্ডেস

12

স্ক্র্যাচ, 203 185 বাইট

এই মেটা পোস্ট প্রতি গল্ফযুক্ত পাঠ্য উপস্থাপনা থেকে বাইটস গণনা করা হয় । স্ক্র্যাচ খুব স্পেস-দক্ষ নয়।

sayস্ট্যাডআউট স্ক্র্যাচের সবচেয়ে নিকটতম জিনিস: স্প্রাইটটি যা বলছে তা সম্বলিত একটি স্পিচ বুদবুদ প্রদর্শন করে। অনুশীলনে, wait n secsআসলে এই আউটপুটটি পড়ার জন্য একটি ব্লকের প্রয়োজন হবে, তবে এই চ্যালেঞ্জের উদ্দেশ্যে এই কোডটি প্রয়োজনীয়তা পূরণ করে।


y =(উভয় ঘটনায়) পরে আপনি নম্বরগুলি হারিয়েছেন
বিটা ডেসে

@ বেটাডেকে দুঃখিত? আমি অনুসরণ করি না
টিমোথিমহ

পুনরাবৃত্ত লুপের অভ্যন্তরে, set y to ...একটি মান অনুপস্থিত
বিটা ডিকায়

1
@ বেটাডেকে এটি খালি স্ট্রিং। :) আপনি যদি ছবিটিতে ক্লিক করেন, আপনি এটি ক্রিয়াতে দেখতে পারেন!
টিমোথিমহ

ওহহহঃ আপনাকে সন্দেহ করার জন্য দুঃখিত;)
বিটা ডেকায়

12

আর, 88 83 77 71 70 বাইট

আমি নিশ্চিত যে এটি আরও উন্নত হতে পারে ... এবং এটি @ ফ্লোডেলের ক্রেডিট সহ ছিল। @Njnnja এবং @ J.Doe এর অন্য একটি পরামর্শের জন্য আরও দু'জন বাইটস সংরক্ষণ করেছে

x=y=1:100;y[3*x]='Fizz';y[5*x]='Buzz';y[15*x]='FizzBuzz';write(y[x],1)

একটি বিড়াল উত্তর। মাউস উপরে আছে :)
সিলভিউ বুর্সিয়া

1
আমি কিছুটা ভাল পেয়েছি:x=1:100;i=!x%%3;j=!x%%5;x[i]="Fizz";x[j]="Buzz";x[i&j]="FizzBuzz";cat(x,sep="\n")
ফ্লুডেল

@njnnja পরামর্শ দেওয়ার জন্য ধন্যবাদ। আমি সঙ্গে এটি বাস্তবায়িত writeবদলে catযদিও
MickyT

2
এখানে নেক্রোম্যানসি! writeকল গ্রহণ করতে পারেন একটি একটি খালি স্ট্রিং পরিবর্তে একটি 1 তাই x=y=1:100;y[3*x]='Fizz';y[5*x]='Buzz';y[15*x]='FizzBuzz';write(y[x],1)70 বাইট একটি তুচ্ছ 1 বাইট গলফ হয়।
জে.ডো

68 বাইট । বাইকাউন্টে তিনটি অপ্রিনিতযোগ্য ব্যাকস্পেস রয়েছে এবং এটি টিআইওতে সঠিকভাবে কাজ করে না।
জে.ডো

12

হাস্কেল, 84 বাইট

main=mapM f[1..100]
f n|d<-drop.(*4).mod n=putStrLn$max(show n)$d 3"Fizz"++d 5"Buzz"

হেনকমার ৮১ বাইটের কাছাকাছি পৌঁছনো , তবে এখনও সেখানে নেই।

d = drop.(*4).mod nএখানে মূল হল: d 3 "Fizz"হয় drop (n`mod`3 * 4) "Fizz"। এটি "Fizz"যখন n `mod` 30 এবং ""অন্যথায় হয়।


পুনর্বিন্যাস 82 নিচে এটা golfs, আমি মনে করি: (%)=drop.(*4).mod n;main=mapM putStrLn[max(show n)$3%"Fizz"++5%"Buzz"|n<-[0..100]]
সিআর ড্রস্ট

অপেক্ষা করুন, তারপরে nসুযোগ নেই। হুঁ।
সিআর ড্রস্ট

হ্যাঁ, এটি কাজ করে না, তবে আমি একটি বিকল্প 85-বাইট সমাধান হিট করেছি যা দেখতে এটি দেখতে অনেকটা দেখতে:main=mapM putStrLn[max(show n)$3%"Fizz"++5%"Buzz"|n<-[0..100],(%)<-[drop.(*4).mod n]]
লিন

কেন লাইন ব্রেক ব্যবহার করবেন না? এটি সেমিকোলনের মতোই ছোট কিন্তু কম অপঠনযোগ্য able
dfeuer

1
আমি আপনাকে একটি কোড গল্ফ ওয়েবসাইটে পাঠযোগ্য কোডের জন্য আপনার অনুসন্ধানের পুনর্বিবেচনা করার পরামর্শ দিচ্ছি :)
লিন

11

পিএইচপি, 54 বাইট

<?for(;$i++<100;)echo[Fizz][$i%3].[Buzz][$i%5]?:$i,~õ;

V5.5 এর পরে বৈধ। õচরিত্র 245, একটি বিট উল্টানো \n

আমি ডিফল্ট ইন্টারপ্রেটার সেটিংস ধরে নিই, কারণ এগুলি কোনও আইআই ছাড়াই রয়েছে। আপনি যদি অনিশ্চিত হন তবে আপনি নিজের স্থানীয় ini -nহিসাবে অক্ষম করতে পারেন php -n fizzbuzz.php

কোনও সংস্করণ যা সম্পূর্ণরূপে কোনও কনফিগারেশন ফাইল সহ ত্রুটিমুক্ত চলবে 62 বাইট :

<?php
for(;$i++<100;)echo@([Fizz][$i%3].[Buzz][$i%5]?:$i),"
";

এসটিএফইউ অপারেটর @ এর অর্থ এই নয় যে কোডটি ত্রুটিমুক্ত।
স্যাটেলিজ


@ কেজকাই আইডোন.কম / জাজআর 9short_open_tag ই বন্ধ, E_NOTICEচালু আছে। এগুলির কোনওটিই ডিফল্ট সেটিংস নয়।
প্রিমো

আমি 3v4l.org এ একগুচ্ছ ত্রুটি পাচ্ছি
একটি কোডার ২

@acoder প্রাসঙ্গিক মেটা পোস্টে । 3v4l.org দরকারী মনে হয়।
প্রিমো

11

80386 মেশিন কোড + ডস, 75 বাইট

কোডের হেক্সডাম্প:

0D 0A 24 B1 64 33 C0 BA-03 05 BB 00 01 40 50 FE
CE 75 0C 83 EB 04 66 C7-07 42 75 7A 7A B6 05 FE
CA 75 0C 83 EB 04 66 C7-07 46 69 7A 7A B2 03 84
FF 74 0C D4 0A 04 30 4B-88 07 C1 E8 08 75 F4 52
8B D3 B4 09 CD 21 5A 58-E2 C0 C3

উত্স কোড (টিএএসএম সিনট্যাক্স):

    .MODEL TINY

    .CODE
    .386
    org 100h

MAIN PROC
    db 13, 10, '$'
    mov cl, 100
    xor ax, ax
    mov dx, 503h

main_loop:
    mov bx, 100h
    inc ax
    push ax

    dec dh
    jnz short buzz_done
    sub bx, 4
    mov dword ptr [bx], 'zzuB'
    mov dh, 5
buzz_done:

    dec dl
    jnz short fizz_done
    sub bx, 4
    mov dword ptr [bx], 'zziF'
    mov dl, 3
fizz_done:

    test bh, bh
    jz short num_done

decimal_loop:
    aam;
    add al, '0'
    dec bx
    mov [bx], al
    shr ax, 8
    jnz decimal_loop

num_done:
    push dx
    mov dx, bx;
    mov ah, 9
    int 21h
    pop dx
    pop ax

    loop main_loop
    ret

MAIN ENDP
    END MAIN

এই কোডটি 1 থেকে 100 এ গণনা axকরে, শেষ থেকে শুরু পর্যন্ত আউটপুট বার্তা তৈরি করে। বার্তার শেষে (নিউলাইন এবং ডেসস $-এর-বার্তার পতাকাটির জন্য যে অক্ষর ব্যবহার করে) কোডটির শুরুতে উপস্থিত হয়:

db 10, 10, '$'

এটি একটি নিরীহ নির্দেশ ( or ax, 240ah) হিসাবে কার্যকর করা হয়েছে । কোডটি শেষ হওয়ার পরে আমি এটিকে আরও প্রচলিত জায়গায় রাখতে পারলাম, তবে 0x100 ঠিকানায় এটি রাখার একটি সুবিধা রয়েছে।

কোডটিতে 2 টি অতিরিক্ত কাউন্টার ব্যবহার করা হয়:

  • 3 থেকে 0 পর্যন্ত গণনা হচ্ছে dl
  • 5 থেকে 0 পর্যন্ত গণনা করা হচ্ছে dh

যখন একটি কাউন্টার 0 এ পৌঁছায়, এটি স্ট্রিংটি Fizzবা Buzzআউটপুট বার্তার শেষে ধাক্কা দেয় । যদি এটি হয় bxতবে হ্রাস bhহবে এবং শূন্য হবে। দশমিক আকারে সংখ্যা আউটপুট দেওয়ার জন্য এটি শর্ত হিসাবে ব্যবহৃত হয়।

দ্রষ্টব্য: আমি এখানে 32-বিট ডেটা ব্যবহার করছি। এটি প্রাক-386 কম্পিউটারে কাজ করবে না।


টিএএসএম কি সত্যিই এনএএসএম থেকে বিপরীত ক্রমে মাল্টি-বাইট অক্ষর ধ্রুবককে পরিচালনা করে ? এনএএসএম-তে, আপনি সেই ক্রমে মেমরির সাথে মেলানোর জন্য, নির্দেশের সাথে মিল রেখে লিখতে mov [mem], 'Fizz'পারেন । দেখুন উদাহরণস্বরূপ আমার overcomplicated "দক্ষ" YASM FizzBuzzFizzdb
পিটার কর্ডেস

1
এটি কি কোনও বাইট ব্যবহারের জন্য সংরক্ষণ করে std, তবে stosb/ stosd? আপনার test bh,bhসাথে cmp di, 100hকিছু বা কিছু প্রতিস্থাপন করতে হবে। AL এ কাউন্টারটি সংরক্ষণ / পুনরুদ্ধার করার পরিবর্তে, আপনি যখনই চান এটি বিএল এবং কেবল ক্লোবার ইক্সে রাখতে পারেন। যেমন sub bx, 4/ mov dword ptr [bx], 'zzuB'3 + 7 বাইট, তাই না? mov eax, 'zzuB' / stosd6 + 2 বাইট (উভয়টিতে অপারেন্ড-আকারের উপসর্গ)। উত্তরের জন্য যদি উত্তরটি বিযুক্ত করা থাকে তবে নির্দেশের আকারগুলি দৃশ্যমান ছিল।
পিটার কর্ডেস

1
এটি দুর্দান্ত উত্তর - ডেটার জন্য সৌম্য নির্দেশাবলীর অপব্যবহার এবং কখনও ব্যবহৃত-পিএসপি মেমরি স্পেস ব্যবহার করে না। @ পিটারকর্ডস আমি আপনার পরামর্শগুলি ব্যবহার করে খেলেছি stosdতবে কোনও স্কোর হ্রাস নিজেই বের করতে সক্ষম হয়েছি। এর পরে stosdহ্রাস হওয়ার DIপরে আপনি হারাতে পারবেন না sub di, 4এবং তারপরে আপনার DIশেষে 4 বাইট বন্ধ রয়েছে। আমি -6 bytesকয়েকটি অন্যান্য ছোটখাটো টুইট ব্যবহার করতে সক্ষম হয়েছি যা আমি পৃথক উত্তর হিসাবে পোস্টিং শেষ করেছি (কেবলমাত্র আমি সম্ভবত সমস্ত মন্তব্যে ফিট করতে পারি না)। যশ!
640KB

11

ডিসি, 64 62 বাইট

[[Fizz]P]sI[[Buzz]P]sU[dn]sNz[zdd3%d0=Ir5%d0=U*0<NAPz9B>L]dsLx

Ungolfed:

[[Fizz]P]sI  # macro I: print "Fizz"
[[Buzz]P]sU  # macro U: print "Buzz"
[dn]sN       # macro N: print current stack depth

z            # increase stack depth

[            # Begin macro
  zdd           # Get current stack depth and ducplicate it twice
  3%d0=I        # Check modulo 3 and leave a duplicate. If it's 0, run macro I
  r             # Rotate top two elements, bringing up the stack depth again
  5%d0=U        # Check modulo 5 and leave a duplicate. It it's 0, run macro U
  *             # Multiply the duplicates of modulos of 3 and 5 ...
  0<N           # ... if it's not 0, run macro N
  AP            # Print a newline (`A` is 10)
                # The macro leaves the stack with one more element each time
  z9B>L      # Run macro L if stack depth is less than "ninety eleven" (101)
]         # End macro

dsLx  # store the macro in register L and execute it
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.