क्या यह क्रम में है? (पहले n घनों का योग)
निकोमाचस प्रमेय के अनुसार, पहले n घनों का योग nवें त्रिकोणीय संख्या के वर्ग के बराबर है। विज़ुअलाइज़ेशन के लिए यह प्रश्न देखें।
आज आपका कार्य एक पूर्णांक लेना है और यह निर्धारित करना है कि क्या यह पहले n घनों के योग के अनुक्रम में है।
मैं यह कहने का अवसर लेता हूं 2025 के लिए नया साल मुबारक! क्योंकि 2025 इस क्रम में 9वीं संख्या है:
इनपुट
शून्य से बड़ा एक पूर्णांक। आपका उत्तर कम से कम 2^31-1 तक इनपुट को संभालने में सक्षम होना चाहिए जब तक कि आपकी भाषा का अधिकतम प्रकार का आकार इसका समर्थन नहीं करता।
आउटपुट
दो अलग-अलग मानों में से कोई एक: एक यदि संख्या क्रम में है, यदि नहीं है तो दूसरी।
इसे ऑनलाइन आज़माएं!
इसे ऑनलाइन आज़माएं!
स्पष्टीकरण:
वें वर्ग त्रिभुज संख्या \$x = है (\frac{n(n+1)}{2})^2\$, इसलिए \$2\sqrt{x}=n^2+n\$, दे रहा है \$n=\frac{-1+\sqrt {1+8\sqrt{x}}}{2}\$. चूँकि \$n\$ को एक पूर्णांक होना चाहिए, इसका मतलब है कि \$\sqrt{1+8\sqrt{x}}\$ को एक विषम पूर्णांक होना चाहिए, अर्थात, \${\sqrt{1+8\sqrt {x}}}\mod{2}=1\$.
इसे आज़माएं
Pad
-1 बाइट: Tbw - \$n\in की जांच से स्विच किया गया \जोड़ k^3\$ से \$\sqrt{n}\in \sum k\$
\$\sum_{k=0}^n k \ (0\le n\le 999) की एक सूची बनाता है )\$, फिर \$\sqrt{n}\$ की सदस्यता की जाँच करता है। चूँकि \$2^{31}-1\$ के अंतर्गत सबसे बड़ी वर्ग त्रिकोणीय संख्या \$303^{\text{st}}\$ है, यह सीमा 3 अंकों की होनी चाहिए इसलिए हम \$999^{\text तक जाते हैं {वें}}\$.
इसे ऑनलाइन आज़माएं!
इसे ऑनलाइन आज़माएं!
संपादित करें
-3 छोटा करने के लिए धन्यवाद Sqrt
इसे ऑनलाइन आज़माएँ! लिंक में कुछ परीक्षण मामले शामिल हैं। स्पष्टीकरण: इनपुट को यूनरी में परिवर्तित करता है, फिर एक त्रिकोणीय संख्या की खोज करता है जिसका वर्ग इनपुट है।
पूर्णांक के लिए संकेत।
इसे ऑनलाइन आज़माएं! डायलॉग क्लासिक को धन्यवाद
इसे ऑनलाइन आज़माएं! लिंक कोड के वर्बोज़ संस्करण के लिए है। एक चारकोल बूलियन आउटपुट करता है, अर्थात - घनों के योग के लिए, यदि नहीं तो कुछ भी नहीं। स्पष्टीकरण: @V_R के पायथन उत्तर के लिए मेरे गोल्फ का पोर्ट।
यदि संभावित फ़्लोटिंग-पॉइंट सटीकता स्वीकार्य है, तो 10 बाइट्स के लिए:
इसे ऑनलाइन आज़माएं! लिंक कोड के वर्बोज़ संस्करण के लिए है। स्पष्टीकरण: @Eonema के R उत्तर का पोर्ट।
इसे ऑनलाइन आज़माएं!
यूनिक्स जैसी प्रणालियों (सिस्टम V AMD64 ABI से) के लिए मानक कॉलिंग कन्वेंशन का पालन करते हुए, इसमें 32-बिट लगता है EDI में पूर्णांक और EAX में 32-बिट पूर्णांक लौटाता है, जो कि यदि संख्या अनुक्रम में है तो 0 है और यदि यह नहीं है तो -1 है।
में असेंबली:
-1 नील को धन्यवाद
2^31-1 जैसे इनपुट के लिए काफी लंबा समय लगता है...
इसे ऑनलाइन आज़माएं!
xवीं त्रिकोणीय संख्या (x*x+x)/2 है, और हम इसका वर्ग ढूंढ रहे हैं: ((x*x+x)/2)**2
हम बचा सकते हैं अंश का वर्ग करके दो अक्षर और हर अलग से: (x*x+x)**2/4
जब n 1 हो तो सही लौटने के लिए हमें रेंज(n) के बजाय रेंज(n+1) की आवश्यकता होती है
उम्मीद है कि सेल A1 में पूर्णांक. सही या गलत लौटाता है।
A000537 देखें। अरनॉल्ड को धन्यवाद।
इसे ऑनलाइन आज़माएं!
यह अरनॉल्ड का कोड है, मैं सिर्फ संदेशवाहक हूं। जावास्क्रिप्ट उत्तर की कमी के कारण पोस्ट किया जा रहा है।