आलसी माइक्रोवेव इनपुट उत्पन्न करें


18

संबंधित: मेरे माइक्रोवेव ओवन और आलसी मूल्यों को उत्पन्न करें

मेरा सहकर्मी इतना आलसी है कि वह माइक्रोवेव ओवन की प्रोग्रामिंग करते समय अपनी उंगली हिलाने से भी गुरेज नहीं करता। (यह वास्तव में सच है!)

उसे माइक्रोवेव इनपुट खोजने में मदद करें जो वह जो चाहता है, उसके सबसे करीब समय देता है, लेकिन जहां सभी अंक समान हैं। यदि दो इनपुटों में वांछित समय से एक ही समय का अंतर होता है, तो कम अंकों वाले को चुनें। यदि दोनों के अंकों की संख्या समान है, तो कम चुनें - इसलिए उसे इतने लंबे समय तक इंतजार नहीं करना पड़ेगा।

इनपुट पूर्णांक है कि एक पूर्णतावादी दर्ज करेंगे, जैसे 4304 मिनट और 30 सेकंड है, जबकि 100और 60प्रत्येक 1 मिनट है। यह 0 से अधिक होगा और 9999 से अधिक नहीं होगा।

आउटपुट एक पूर्णांक होना चाहिए, उदाहरण के 444लिए 4 मिनट और 44 सेकंड है और 5555 सेकंड है।

यदि कुल समय 1 मिनट और 40 सेकंड से कम है, तो इनपुट और आउटपुट दोनों केवल साधारण सेकंड (मिनट) में हो सकते हैं।

यह , इसलिए आपका कोड यथासंभव छोटा होना चाहिए।

परीक्षण के मामलों:

  30 →   33
  60 →   55
  70 →  111
  90 →   88
 100 →   55
 101 →   66
 120 →   77
 130 →   88
 200 →   99
 201 →  222
 500 →  444
 700 →  666
1000 →  888
1055 →  999
1056 → 1111
1090 → 1111

3
मुझे आधा आलसी दृष्टिकोण पसंद है। बस "30 सेकंड जोड़ें" बटन को तब तक दबाए रखें जब तक कि यह वहां न हो: D
Geobits

@Geobits 11:30 तक बहुत सारी प्रेसें। वैसे भी, तथ्य यह है कि वह मेरे द्वारा लिखी गई विधि का उपयोग करता है ...: -D
Adám

2
हाँ, मैं आमतौर पर केवल कुछ मिनटों के लिए इसे टाइप करता हूं। यह प्रेस और उंगली की यात्रा दूरी की संख्या के बीच एक नाजुक व्यापार है;)
2

क्या # सेकंड में इनपुट / आउटपुट की अनुमति है?
कैलकुलेटर

2
मेरा सहकर्मी इतना आलसी है कि वह माइक्रोवेव ओवन की प्रोग्रामिंग करते समय अपनी उंगली हिलाने से भी गुरेज नहीं करता। Dyalog APL मुख्यालय में काम करने वाले किसी से कम की उम्मीद नहीं थी ... :)
लिन

जवाबों:


3

जेली, 26 बाइट्स

bȷ2ḅ60
³ÇạÇ,
9Rẋ€4R¤ḌFÇ€ṂṪ

स्पष्टीकरण:

bȷ2ḅ60             f(x) = x tobase 100 frombase 60
³ÇạÇ,              g(x) = (abs(f(arg) - f(x)), x)
9Rẋ€4R¤            main(arg) = [1..9] repeat each with [1..4],
       ḌF           then get digits and flatten,
         ǀ         then map g,
           Ṃ        then minimum,
            Ṫ       then last element.

इसे ऑनलाइन आज़माएं!


2

जावास्क्रिप्ट (ईएस 6), 112 बाइट्स

n=>{c=n=>n*3+n%100*2;d=n=c(n);for(r=i=0;i<1e4;i++)/^(.)\1*$/.test(i)&(m=c(i)-n,m<0?m=-m:m)<d&&(d=m,r=i);return r}

एक सहायक फ़ंक्शन का उपयोग करता है cजो कि बीते हुए सेकंड की वास्तविक संख्या की पांच गुना गणना करता है ।


1

डायलाग एपीएल , 37 बाइट्स

{⍵⊃⍨⊃⍋⊃|-/(60⊥0 100∘⊤)¨⎕⍵}⍎¨,⎕D∘./⍨⍳4

⍳41 2 3 4
⎕D"0123456789"
∘./⍨पुनरावृत्ति तालिका (एक गुणन तालिका की तरह, लेकिन जहां प्रत्येक कोशिका में A × B के बजाय A की B पुनरावृत्तियाँ होती हैं)
,तालिका को स्ट्रिंग की सूची में
⍎¨बनाते हैं, प्रत्येक स्ट्रिंग को संख्या में बनाते हैं (अब हमारे पास सभी संभवों की सूची है। परिणाम।)
{... }फ़ंक्शन जहां
⎕⍵संकेत को इनपुट के साथ पूर्ववर्ती तर्क द्वारा दर्शाया जाता है
(... दोनों में से प्रत्येक पर लागू होते हैं (तर्क और सूची) ...
0 100∘⊤आधार -100 में
60⊥कन्वर्ट बेस -60 से कन्वर्ट
-/दोनों के बीच अंतर की गणना करें
| पूर्ण के मूल्य
निकालने की सूची (क्योंकि -/इसका परिणाम समझाया गया)
सॉर्ट ऑर्डर (सॉर्ट नहीं करता, केवल उस ऑर्डर को लौटाता है जिसमें आरोही क्रम को प्राप्त करने के लिए तर्क दिए जाते हैं। यदि दो तत्व समान हैं, तो वे वर्तमान क्रम में रहते हैं। चूंकि हमारी सूची में लंबाई बढ़ने के तत्व हैं, इसलिए यह संबंधों का ध्यान रखता है।)
पहले वाले, यानी इनपुट से सबसे छोटे पूर्ण अंतर वाले ⍵⊃⍨तत्व को तर्क सूची (संभावित परिणामों की सूची) से तत्व लेते हैं।

एक बाइट शेविंग के लिए सवाल में सहकर्मी का धन्यवाद।


नोट: ओपी को पोस्ट करने के समय मेरे पास कोई समाधान नहीं था।

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