c# - Handling temporary calculation in Linq -
एक साक्षात्कार प्रश्न हल करते समय
प्रश्न छह अंक संख्या को ऐसे तरीके से प्राप्त करने की आवश्यकता होती है जब यह 2 और 9 के बीच के पूर्णांक से गुणा किया जाता है, तो यह मूल छह अंक संख्या देता है जब उसके अंक उलट हो जाते हैं।
उदाहरण:
मान लीजिए कि मैं 219978 * 4 को बढ़ाता हूं, मुझे 879912 मिलता है, जब रिवर्स 879912 मुझे 219978 वापस मिलेंगे।
मैंने इसे
के लिए (लंबा एल = 100000; एल <99 99 99; l ++) का उपयोग करके हल किया {var num = l.ToString (); (इंट आई = 3; आई & lt; 9; i ++) के लिए {var mul = l * i; स्ट्रिंग str = mul.ToString (); चार [] splitDigits = str.ToCharArray (); स्ट्रिंग रिवर्सडगिट = नई स्ट्रिंग (स्प्लिटडिगिट। आरवर ()। ToArray ()); अगर (रिवर्सड डिगिट.कंपारेटो (num) == 0) {Console.WriteLine ("{0} * {1} = {2}, जब गुणा किया गया {3}", संख्या, आई, मुल, उलट); मूल कार्य यह था कि यह linq का उपयोग करके हल किया जाए। उदाहरण के लिए अस्थायी गणनाओं को संभालने में मुझे थोड़ा भ्रम है
जब मैं
var = from l में एन्यूमेरिबल.रेंज (100000999999) i में एन्यूमेरिबल। श्रेणी (3 9)
किस तरह से है लिनक में var num = l.ToString (), आदि जैसे अस्थायी गणनाओं को संभाल करने के लिए। यह मुझे Linq में समाप्त करने के लिए बहुत ही भ्रमित है। सहायता की सराहना की जाती है।
आप चाहते हैं चलो
...
< कोड> // नोट: छोटी गाड़ी; एन वाईरेबल में रेंज (100000, 99 99 99) में var qry = नीचे एल देखें। रेंज (3, 9) च = l.ToString () let t = (l * i) .ToString () जहां एस। रिवर्स ()। अनुक्रमांक (टी) का चयन करें नया {l, i}; Var a = qry.First (); कंसोल। लिखो ("एक जवाब ..."); कंसोल.प्रकाश रेखा ("{0} x {1} = {2}", ए.एल., ए.आई., ए.एल. * ए.आई.); कंसोल.प्रकाश रेखा ("सभी जवाब ..."); फॉरचाच (क्यूरी में विभिन्न पंक्ति) {कंसोल। वीडलाइन ("{0} x {1} = {2}", पंक्ति.एल, पंक्ति.आई, पंक्ति.एल * पंक्ति.आई); }
पहले जवाब के साथ (नोट करें कि 9 का शामिल करना कोड के आपके मूल संस्करण से लिया गया है, लेकिन यह रेंज ( 3,8)
इसके बजाय):
109989 x 9 = 989901
अनुकूलित संस्करण (और सही श्रेणी):
var qry = enumerable.Range में (100000, 99 9999 - 100000) चलो s = l.ToString () चलो sReversed = नया स्ट्रिंग (s.Reverse ()। ToArray ()) चलो चाहता था = अन्तर्निहित। पर्स (एसआरईवर्ड्स) से मैं एन्यूमेरेशनल में। रेंज (3, 8-3) जहां एल * आई == का चयन करना चाहते हैं नया {l, i};
यह स्ट्रिंग्स की संख्या कम कर देता है, पूर्णांक समानता का उपयोग करता है, और सही ढंग से श्रेणी का उपयोग करता है ( रेंज
के दूसरे पैरामीटर count , अंत नहीं)।
Comments
Post a Comment