ফিজ বাজ .. ক্র্যাকল পপ! (জেনারালাইজড ফিজ বাজ)


11

আমরা সবাই ওল 'ফিজ বাজ সমস্যার কথা শুনেছি, তবে আপনি যখন আরও বেশি কারণের সাথে এটি প্রয়োগ করার চেষ্টা করেন তখন কী ঘটে? ফিজ বাজ ক্র্যাকল পপ!

চ্যালেঞ্জ

একটি লিখুন পুরো প্রোগ্রাম যা একটি লাগে পূর্ণসংখ্যা ইনপুট এন , তারপর এন একটি পূর্ণসংখ্যা এবং একটি স্ট্রিং, তারপর অন্য পূর্ণসংখ্যা (> 1) K, যেমন ধারণকারী tuples:

 n int1 str1 int2 str2 (...) intn strn k

আপনি এই লাইনটি কোনও কমান্ড লাইন বা STDIN থেকে নিতে পারেন।

তারপর, k সব পূর্ণসংখ্যার 1, যদি তার কোনো দিয়ে বিভাজ্য int1 , int2 ... intn , আউটপুট সব সংশ্লিষ্ট Str ইনপুট অনুক্রমে এস, একটি newline করে। যদি তা না হয়, তবে কেবল নতুন লাইন অনুসারে পূর্ণসংখ্যা আউটপুট করুন।

উদাহরণস্বরূপ, ইনপুট সহ

3 2 Fizz 3 Buzz 5 Crackle 10

আমরা পেতে

1
Fizz
Buzz
Fizz
Crackle
FizzBuzz
7
Fizz
Buzz
FizzCrackle

তবে ইনপুট সহ (ক্রম পরিবর্তন লক্ষ্য করুন)

3 3 Buzz 2 Fizz 5 Crackle 10

আমরা পেতে

1
Fizz
Buzz
Fizz
Crackle
BuzzFizz
7
Fizz
Buzz
FizzCrackle

Lineচ্ছিক পেছনের নতুন লাইনটি গ্রহণযোগ্য।

বাইটস মধ্যে সংক্ষিপ্ত কোড।

সম্পাদনা:

অবশ্যই আমি অনেক কিছু মিস করেছি, দুঃখিত।

  • কনসোল এবং এসটিডিআইএন থেকে প্রাপ্ত ইনপুট , অন্য যে কোনও জায়গায় +5 বাইট (: সি) পাওয়া যায়
  • সম্পূর্ণ প্রোগ্রাম দয়া করে।
  • স্টারদের জন্য খালি খালি স্ট্রিং ধরে নিন
  • Ints স্বতন্ত্রতা জন্য কোন গ্যারান্টি নেই

নমুনা সি ++ প্রোগ্রাম (20 এ সীমাবদ্ধ কারণ আমি অলস):

#include <iostream>
#include <string>
using namespace std;

int main() {
  string names[20];
  int mods[20], n, max;
  cin >> max >> n;
  for (int i=0; i<n; i++) {
    cin >> mods[i] >> names[i];
  }
  for (int i=1; i<=max; i++) {
    bool found = false;

    for (int j=0; j<n; j++) {
      if (i % mods[j] == 0) {
        found = true;
        cout << names[j];
      }
    }
    if (!found)
     cout << i;
    cout << endl;
  }

  return 0;
}

5
ইনপুটটি কি এত অনমনীয় হওয়া দরকার? অথবা আমরা কোনও হ্যাশটেবল / অভিধান / অ্যারে / ইত্যাদি নিতে পারি। ভাষার স্থানীয় বিন্যাসে?
অ্যাডমবর্কবার্ক

2
এছাড়াও, পিপিসিজিতে আপনাকে স্বাগতম!
অ্যাডমবর্কবার্ক

1
যদি সংখ্যা দুটি একই হয়? তারা সর্বদা অনন্য ইতিবাচক পূর্ণসংখ্যার হবে?
ডেভিড কনরাড

1
সংখ্যাগুলি সম্পর্কে কী গ্যারান্টি রয়েছে: সেগুলি কি সব ধনাত্মক হবে, বা কমপক্ষে শূন্য নয়? স্ট্রিংগুলি সম্পর্কে কী: এগুলি কি সমস্ত শূন্য নয়?
পিটার টেলর

1
একটি ভাল শিরোনাম হতে পারে Generalized Fizz Buzz
mbomb007

উত্তর:



4

জাভাস্ক্রিপ্ট (ES6), 90 বাইট

একটি শীর্ষস্থানীয় নিউলাইন তৈরি করে।

f=(a,i=a.pop())=>i?f(a,i-1)+`
`+(a.map((_,j)=>++j>a[0]|i%a[j*2-1]?'':a[j*2]).join``||i):''

পরীক্ষা



1

সি ++, 194 বাইট

#include <iostream>
#define p std::cout<<
int main(int c,char**a){c=2*atoi(a[1])+2;int x,f,i,n=atoi(a[c]);for(x=1;x<=n;x++){f=0;for(i=2;i<c;i+=2)if(x%atoi(a[i])<1)f=1,p a[i+1];if(!f)p x;p'\n';}}

Ungolfed:

#include <iostream>

int main(int c, char **a) {
    c = 2 * atoi(a[1]) + 2;
    int x, f, i, n = atoi(a[c]);
    for (x = 1; x <= n; x++) {
        f = 0;
        for (i = 2; i < c; i += 2)
            if (x % atoi(a[i]) < 1) f = 1, std::cout << a[i+1];
        if (!f) std::cout << x;
        std::cout << '\n';
    }
}

1
ফলাফল যদি x%atoi(a[i])নেতিবাচক হতে না পারে, তবে কেবল পরীক্ষা করুন x%atoi(a[i])<1
ইয়াতসি

@ টুকুএক্সএক্স ভাল বক্তব্য, ধন্যবাদ।
ডেভিড কনরাড

1
এছাড়াও, আমি নিশ্চিত যে আপনি এটি করতে পারবেন p'\n':)
ইয়াতসি


0

জাভাস্ক্রিপ্ট (ES6), 105 97 বাইট

g=(m,k,i=1)=>i<-~k?([...m.keys()].filter(j=>i%j<1).map(j=>m.get(j)).join``||i)+"\n"+g(m,k,i+1):""

জোড়ার মানচিত্রের মান (পূর্ণসংখ্যা, স্ট্রিং) এবং একটি পূর্ণসংখ্যার কে । একটি ট্রেলিং নিউলাইন নিয়ে আসে।

এখানে একটি পুনরাবৃত্তিযোগ্য সংস্করণ (105 বাইট) রয়েছে, তবে একটি অনুবর্তনযোগ্য নতুন লাইন পাওয়া যায় না।

m=>k=>[...Array(k).keys()].map(x=>[...m.keys()].filter(j=>-~x%j<1).map(j=>m.get(j)).join``||x+1).join`\n`

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


0

জাভা, 331 বাইট

কারণ জাভা

import java.util.*;class A{A(int c,String x){i=c;v=x;}int i;String v;void x(String[]x){ArrayList<A>l=new ArrayList();int n=0;for(;++n<x.length-1;)l.add(new A(Integer.valueOf(x[n++]),x[n]));n=Integer.valueOf(x[n]);for(int i=1;i++<n;){String o="";boolean y=1>0;for(A a:l)if(i%a.i==0){y=1<0;o+=a.v;}if(y)o+=i;System.out.println(o);}}}

এটি এর জন্য প্রয়োজনীয় পূর্ণ শ্রেণি। যাইহোক, এটি চালানোর জন্য, আপনাকে অবশ্যই xএকটি বিদ্যমান উদাহরণে পদ্ধতিটি কল করতে হবে A। পরীক্ষার খাতিরে, আমি নীচে একটি কমান্ড-লাইন চলমানযোগ্য ক্লাস সরবরাহ করেছি, যা আংশিকভাবে নিরবচ্ছিন্ন।

import java.util.*;
class A{
A(int c,String x){i=c;v=x;}
int i;
String v;
void x(String[]x){
ArrayList<A>l=new ArrayList();
int n=0;
for(;++n<x.length-1;)
l.add(new A(Integer.valueOf(x[n++]),x[n]));
n=Integer.valueOf(x[n]);
for(int i=1;i++<n;){
String o="";
boolean y=1>0;
for(A a:l)if(i%a.i==0){y=1<0;o+=a.v;}
if(y)o+=i;
System.out.println(o);
}
}
public static void main(String[] args) {
new A(0,"").x(args);
}
}


0

ডিসি , 121 বাইট

?dstsw?[rdlt:Y:Rlt1-dst0<q]dsqx?sb1sm[ln;Y;RnlP1+sP]ss[lmn]sF[1sn0sP[lnd;Ylmr%0=s1+dsnlw!<g]dsgxlP0=Flm1+dsm10Plb!<i]dsix

3 পৃথক রেখায় ইনপুট নেয়, প্রথম লাইনটি পূর্ণসংখ্যাযুক্ত থাকে n, দ্বিতীয়টি int strবর্গক্ষেত্র বন্ধনী ( []) এর সাথে যুক্ত স্ট্রিংগুলির সাথে টিপলগুলি আস্তরণ করে এবং তৃতীয় লাইনে পূর্ণসংখ্যা নিয়ে গঠিত k। উদাহরণস্বরূপ, 3 2 Fizz 3 Buzz 5 Crackle 10ইনপুট হিসাবে হতে পারে:

3
3 [Buzz] 2 [Fizz] 5 [Crackle]
10

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

বা অন্য কোনও ক্রমে ইনপুট নেওয়া:

ডিসি , 118 বাইট

?dstsw[dlt:Y:Rlt1-dst0<q]dsqxsb1sm[ln;Y;RnlP1+sP]ss[lmn]sF[1sn0sP[lnd;Ylmr%0=s1+dsnlw!<g]dsgxlP0=Flm1+dsm10Plb!<i]dsix

এটি ভিন্ন ক্রমে ইনপুট নেয়, তবে বিন্যাসে একক লাইনে

k [str1] int1 [str2] int2 (...) [strn] intn n

উদাহরণস্বরূপ, 3 2 Fizz 3 Buzz 5 Crackle 10ইনপুট হিসাবে হবে:

10 [Buzz] 3 [Fizz] 2 [Crackle] 5 3

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.