परिचय
जब मैं टीवी देख रहा था, तब मैंने दूसरे दिन इस (बेकार) पैटर्न को ठोकर मार दी। मैंने इसे "9 पैटर्न" नाम दिया क्योंकि इसका उपयोग करने वाला पहला नंबर था 9. इसका सार यह है कि, आप एक संख्या दर्ज करते हैं (मान लीजिए x ), और फिर आप वापस आ गए:
- एक्स
- x + ( x / 3) [चलो इस y को कॉल करें ]
- दो तिहाई y [चलो इस z को कॉल करें ]
- z + १
इसलिए, अगर मैं इस पैटर्न को x के रूप में संख्या 9 के अंदर रखता हूं, तो यह वही होगा जो बाहर आएगा:
- ९ ( ९ )
- 12 ( 9 + 9/3 ) [9 ओवर 3 3 है, और 9 + 3 12 है]
- 8 ( 12 गुना दो-तिहाई) [12 का एक तिहाई 4 है, और 4 * 2 8 है]
- 9 ( 8 + 1 9)
चुनौती
मुझे एक फ़ंक्शन (किसी भी प्रोग्रामिंग भाषा में) लिखें जो एक संख्या में लेता है, और पैटर्न का उपयोग करके एक पूर्णांक सरणी को आउटपुट करता है।
कुछ इस तरह से psuedo- कोड:
function ninePattern(int myInt) returns IntegerArray {
int iterationA = myInt + (myInt / 3);
int iterationB = iterationA * (2 / 3);
int iterationC = iterationB + 1;
IntegerArray x = [myInt, iterationA, iterationB, iterationC];
return x;
}
स्पष्टीकरण
प्रश्न की विशिष्टताओं के बारे में टिप्पणियों में चर्चा हुई है। यह खंड उनमें से कुछ को स्पष्ट करने के लिए है।
"वर्णों की तुलना में बाइट्स में गिनना बेहतर है"
मैंने पात्रों को चुना क्योंकि (मेरे लिए, कम से कम) यह न्याय करना आसान होगा। बेशक, मैं इसे अब नहीं बदल सकता। (बहुत सारे उत्तर पहले से ही पोस्ट किए गए हैं)
"गोलाई"
राउंडिंग इस कविता का अनुसरण करता है:
यदि यह 5 या अधिक है, तो स्कोर बढ़ाएं
यदि यह 4 या उससे कम है, तो इसे आराम करने दें
सीधे शब्दों में कहें, अगर यह 4.7 या 3.85 की तरह कुछ है, तो उन्हें क्रमशः 5 और 4 के लिए गोल करें।
उदाहरण
Input => Result
9 => [9, 12, 8, 9]
8 => [8, 11, 7, 8]
6 => [6, 8, 5, 6]
23 => [23, 31, 21, 22]
159 => [159, 212, 141, 142]
यदि, हालांकि, संख्याएँ 2.3 या 10.435446 जैसी कुछ हैं, तो उन्हें क्रमशः 2 और 10 पर गोल करें।
"भाषा समर्थन"
आप फ़ंक्शंस और / या सरणियों का उपयोग न करने के लिए स्वतंत्र हैं I केवल और केवल यदि आपकी पसंद की भाषा उनका समर्थन नहीं करती है। यदि यह करता है (भले ही यह आपके पात्रों की संख्या में वृद्धि करेगा), तो आपको उनका उपयोग करना होगा ।