परिचय:
आइए विंडोज में एक मानक कैलकुलेटर पर एक नज़र डालें:
इस चुनौती के लिए, हम केवल निम्नलिखित बटन देखेंगे, और बाकी सब चीजों को अनदेखा करेंगे:

7 8 9 /
4 5 6 *
1 2 3 -
0 0 . +
चुनौती:
इनपुट:
आपको दो इनपुट प्राप्त होंगे:
- एक 90 डिग्री की वृद्धि में रोटेशन को इंगित करने के लिए कुछ है
- अन्य निर्देशांक की एक सूची है जो घुमाए गए कैलकुलेटर पर दबाए गए बटन का प्रतिनिधित्व करता है।
पहले इनपुट के आधार पर, हम घड़ी की दिशा में उल्लिखित लेआउट को 90 डिग्री की वृद्धि में घुमाते हैं। इसलिए यदि इनपुट है 0 degrees, तो यह जैसा है, वैसा ही रहता है; लेकिन अगर इनपुट है 270 degrees, तो इसे तीन बार दक्षिणावर्त (या एक बार वामावर्त) घुमाया जाएगा। यहाँ चार संभावित ले-आउट हैं:
Default / 0 degrees:
7 8 9 /
4 5 6 *
1 2 3 -
0 0 . +
90 degrees clockwise:
0 1 4 7
0 2 5 8
. 3 6 9
+ - * /
180 degrees:
+ . 0 0
- 3 2 1
* 6 5 4
/ 9 8 7
270 degrees clockwise / 90 degrees counterclockwise:
/ * - +
9 6 3 .
8 5 2 0
7 4 1 0
दूसरे इनपुट किसी भी उचित प्रारूप में निर्देशांक की एक सूची है † । उदाहरण के लिए (0-सूचकांक 2D पूर्णांक-सरणी):
[[1,2],[2,3],[0,3],[1,0],[1,1]]
आउटपुट:
हम दोनों राशि, साथ ही परिणाम (और एक बराबर चिह्न =) का उत्पादन करते हैं।
उदाहरण:
तो यदि इनपुट है 270 degreesऔर [[1,2],[2,3],[0,3],[1,0],[1,1]], आउटपुट बन जाएगा:
517*6=3102
चुनौती नियम:
- Be इनपुट किसी भी उचित प्रारूप में हो सकते हैं। पहला इनपुट हो सकता है
0-3,1-4,A-D,0,90,180,270, आदि दूसरे इनपुट 0-अनुक्रमित 2 डी सरणी, 1 अनुक्रमित 2 डी सरणी, एक स्ट्रिंग, प्वाइंट वस्तुओं की सूची, आदि आपका कॉल हो सकता है। दिए गए उदाहरण इनपुट की तुलना में x और y निर्देशांक को स्वैप करना संभव है। कृपया बताएं कि आपने अपने उत्तर में किन इनपुट प्रारूपों का उपयोग किया है! 517 * 6 = 3102यदि आप चाहते हैं तो आपको रिक्त स्थान (यानी ) जोड़ने की अनुमति है।- आप अल्पविराम के बाद अनुगामी शून्य जोड़ने के लिए, तीन की एक अधिकतम (यानी की अनुमति दी जाती
3102.0/3102.00/3102.000बजाय3102या0.430के बजाय0.43)। - आपको आउटपुट में कोष्ठक जोड़ने की अनुमति नहीं है, इसलिए
(((0.6+4)-0)/2)/4=0.575एक मान्य आउटपुट नहीं है। - आपको अपनी भाषा के लिए अन्य ऑपरेंड-प्रतीकों का उपयोग करने की अनुमति है। इसलिए
×या·इसके बजाय*; या÷इसके बजाय/; आदि। - चूंकि एक ऑपरेटर को इनपुट करते समय एक कैलकुलेटर स्वचालित रूप से गणना करता है, इसलिए आपको ऑपरेटर की पूर्वता को अनदेखा करना चाहिए! तो
10+5*3परिणाम होगा45((10+5)*3=45), नहीं25(10+(5*3)=25)
(यानी10→+→5→*(यह अब प्रदर्शन में 15 प्रदर्शित करता है) →3→=(अब यह उत्तर प्रदर्शित करता है45))। उपयोग करते समय इसे ध्यान में रखेंevalऔर परिणामी राशि पर समान कार्य करें। - 0 से विभाजन के लिए कोई परीक्षण मामले नहीं होंगे।
- परिणाम के रूप में तीन से अधिक दशमलव अंकों के साथ कोई भी परीक्षण मामले नहीं होंगे, इसलिए परिणाम को गोल करने की कोई आवश्यकता नहीं है।
- ऐसे कोई भी परीक्षण मामले नहीं होंगे जहां कई ऑपरेशंस एक-दूसरे का अनुसरण करते हैं, या जहां दो डॉट्स एक-दूसरे का अनुसरण करते हैं।
- ऋणात्मक संख्याओं के लिए कोई परीक्षण मामले नहीं होंगे। ऋण-चिह्न (
-) केवल ऑपरेंड के रूप में उपयोग किया जाएगा, नकारात्मक के रूप में नहीं। .##अल्पविराम से पहले एक प्रमुख संख्या के बिना कोई भी परीक्षण मामले2+.7नहीं होंगे (यानी एक वैध परीक्षण मामला नहीं होगा, लेकिन2+0.7हो सकता है)।
सामान्य नियम:
- यह कोड-गोल्फ है , इसलिए बाइट्स जीत में सबसे छोटा जवाब है।
कोड-गोल्फ भाषाओं को गैर-कोडगॉल्फिंग भाषाओं के साथ उत्तर पोस्ट करने से हतोत्साहित न करें। 'किसी भी' प्रोग्रामिंग भाषा के लिए यथासंभव संक्षिप्त उत्तर के साथ आने का प्रयास करें। - मानक नियम आपके उत्तर के लिए लागू होते हैं , इसलिए आपको उचित पैरामीटर, पूर्ण कार्यक्रमों के साथ STDIN / STDOUT, फ़ंक्शन / विधि का उपयोग करने की अनुमति है। तुम्हारा फोन।
- डिफ़ॉल्ट लूपोल्स वर्जित हैं।
- यदि संभव हो, तो कृपया अपने कोड के लिए एक परीक्षण के साथ एक लिंक जोड़ें।
- इसके अलावा, यदि आवश्यक हो तो एक स्पष्टीकरण जोड़ें।
परीक्षण के मामलों:
Input: 270 degrees & [[1,2],[2,3],[0,3],[1,0],[1,1]]
Output: 517*6=3102
Input: 90 degrees & [[3,1],[0,0],[0,1],[3,3],[2,0],[0,3],[0,0],[0,2],[3,0],[2,1]]
Output: 800/4+0.75=200.75
Input: 0 degrees & [[0,0],[1,0],[2,0],[3,0],[1,2],[2,1],[2,2]]
Output: 789/263=3
Input: 180 degrees & [[3,0],[1,0],[1,2],[0,0],[3,2],[0,1],[2,0],[0,3],[2,1],[0,3],[3,2]]
Output: 0.6+4-0/2/4=0.575
1+-*/+-*/2देता है 0.5।
[1,3],
2+.7?