हाल ही में, मेरी प्रतिष्ठा थी 25,121। मैंने देखा कि प्रत्येक अंक समूहीकरण (यानी कॉमा द्वारा अलग किए गए अंक) एक पूर्ण वर्ग था।
आपकी चुनौती यह है कि एक गैर-नकारात्मक पूर्णांक N और एक अनियंत्रित बूलियन ब्लैक बॉक्स फ़ंक्शन f : Z * → B दिया जाए , तो एक सत्य मान प्राप्त होता है यदि f का प्रत्येक मान N के अंक समूह में लागू होता है, सत्य है, और अन्यथा गलत है।
एक संख्या समूह को 3 के समूहों में विभाजित करके, दाईं ओर से शुरू करके अंक समूह प्राप्त कर सकते हैं। सबसे बाएं समूह में 1, 2 या 3 अंक हो सकते हैं। कुछ उदाहरण:
12398123 -> 12,398,123 (3 digit groupings)
10 -> 10 (1 digit grouping)
23045 -> 23,045 (2 digit groupings)
100000001 -> 100,000,001 (3 digit groupings)
1337 -> 1,337 (2 digit groupings)
0 -> 0 (1 digit grouping)
अतिरिक्त नियम
- इस समारोह या तो बूलियन्स (जैसे मैप कर सकते
trueऔरfalse),1है और0है, या किसी truthy / falsey मूल्य। कृपया निर्दिष्ट करें कि कौन सा प्रारूप आपके उत्तर द्वारा समर्थित है। - आप एक पूर्णांक इनपुट के रूप में ले सकते हैं, या एक पूर्णांक स्ट्रिंग (यानी एक अंक से बना स्ट्रिंग)।
- आप एक कार्यक्रम या एक समारोह लिख सकते हैं।
- जब कार्य करने के लिए डिजिटल समूहों गुजर च , आप सभी अनावश्यक अग्रणी शून्य ट्रिम चाहिए। जैसे, एफ , जब एन = 123,000 पर लागू किया जाता है तो एफ (123) और एफ (0) के रूप में निष्पादित किया जाना चाहिए ।
परीक्षण के मामलों
फ़ंक्शन संकेतन है n -> f(n), उदाहरण के लिए , जैसे n -> n == 0। सभी ऑपरेटर पूर्णांक अंकगणित मान लेते हैं। (जैसे, sqrt(3) == 1)
function f
integer N
boolean result
n -> n == n
1230192
true
n -> n != n
42
false
n -> n > 400
420000
false
n -> n > 0
0
false
n -> n -> 0
1
true
n -> sqrt(n) ** 2 == n
25121
true
n -> sqrt(n) ** 2 == n
4101
false
n -> mod(n, 2) == 0
2902414
true
n -> n % 10 > max(digits(n / 10))
10239120
false
n -> n % 10 > max(digits(n / 10))
123456789
true
n -> n > 0लागू होना चाहिए 0) क्योंकि अधिकांश उत्तर उस पर विफल होते हैं।
[0]।