हाल ही में, मेरी प्रतिष्ठा थी 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]
।