हम सभी ने ओल 'फ़िज़ बज़ समस्या के बारे में सुना है, लेकिन जब आप इसे और अधिक कारकों के साथ लागू करने की कोशिश करते हैं तो क्या होता है? फ़िज़्ज़ बज़ क्रैकल पॉप!
चुनौती
एक पूर्ण प्रोग्राम लिखें जो पूर्णांक इनपुट n लेता है , फिर n tuples जिसमें पूर्णांक और एक स्ट्रिंग है, फिर एक और पूर्णांक (> 1) k, जैसे:
n int1 str1 int2 str2 (...) intn strn k
आप इस लाइन को कमांड लाइन या STDIN में से ले सकते हैं।
फिर, सभी पूर्णांक 1 से k के लिए, यदि यह int1 , int2 ... intn में से किसी के द्वारा विभाज्य है, तो इनपुट क्रम में सभी संबंधित str s , आउटपुट को एक नई पंक्ति द्वारा अनुसरण किया जाता है। यदि ऐसा नहीं है, तो केवल पूर्णांक का उत्पादन करें, उसके बाद एक नई पंक्ति।
उदाहरण के लिए, इनपुट के साथ
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
वैकल्पिक अनुगामी न्यूलाइन स्वीकार्य है।
बाइट्स में सबसे छोटा कोड जीतता है।
संपादन:
जाहिर है मुझे बहुत याद किया, क्षमा करें।
कंसोल और एसटीडीआईएनसे इनपुट, कहीं भी औरकहीं भी+5 बाइट्स (: c) मिलते हैं- पूर्ण कार्यक्रम कृपया।
- स्ट्रिंग के लिए गैर-रिक्त स्ट्रिंग्स मान लें
- चींटियों की विशिष्टता की कोई गारंटी नहीं है
नमूना C ++ प्रोग्राम (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;
}
Generalized Fizz Buzz।