माणिक्य की सलाह


13

मैं कैसे छोटा कर सकता हूं:

p=gets.to_i
a=gets
b=gets.to_i

यदि मेरा इनपुट एक पूर्णांक है, उसके बाद एक स्ट्रिंग है, उसके बाद एक पूर्णांक है?


4
PPCG में आपका स्वागत है!
मार्टिन एंडर

उन लोगों के लिए जो यह कहेंगे कि यह बंद विषय है, यदि आप इसे बहस करना चाहते हैं, तो मेटा के माध्यम से पढ़ें और फिर मुझे संदेश दें।
स्टेन स्ट्रम

जवाबों:


7

ARGV ($ *) और बड़े पैमाने पर असाइनमेंट का उपयोग करें

(अस्वीकरण: मैं रूबी को नहीं जानता, लेकिन यह TIO पर काम करता है )

p,a,b=$*
p=p.to_i
b=b.to_i

30 के बजाय 28 26 बाइट्स ($ * चाल को इंगित करने के लिए स्नैक के लिए धन्यवाद)


ARGV को $ * के रूप में भी एक्सेस किया जा सकता है जो
स्नैक

4
@ स्नैक हेहे, एक टिप्स का जवाब दे रहे हैं :)
AdmBorkBork

6

एक लैम्ब्डा का उपयोग करें

आमतौर पर आपके इनपुट / आउटपुट में लैम्बडा के पैरामीटर / रिटर्न वैल्यू होने के साथ लैम्बडा फ़ंक्शन के रूप में उत्तर की अनुमति होती है, इसलिए आप यह कर सकते हैं:

->p,a,b{...}

यदि आपने fइसे एक चर को सौंपा है, तो इसे कहा जाएगा

f[p,a,b]

यह आम तौर पर इनपुट के प्रकारों को मानने के लिए ठीक है, लेकिन सुरक्षित होने के लिए आप अपने उत्तर में इसका उल्लेख कर सकते हैं।

प्रासंगिक इनपुट / आउटपुट विधियों के बारे में प्रासंगिक मेटा पोस्ट


6

यदि आपको किसी कारणवश stdin / stdout io के साथ पूर्ण कार्यक्रम की आवश्यकता है, तो आप जो सबसे छोटा कर सकते हैं, वह है -nध्वज का उपयोग एक कॉल को छोटा करने के gets.to_iलिए eval$_:

p=eval$_
a=gets
b=gets.to_i

-nध्वज के साथ अपने कोड चारों ओर से घेरे while gets ... endहै, तो अधिक इनपुट अपने कार्यक्रम खपत की तुलना में आपूर्ति की जाती है, तो कार्यक्रम इच्छा पाश।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.