यह स्क्वायर होना हिप है


44

चुनौती

तो, उम, ऐसा लगता है कि, जबकि हमारे पास बहुत सारी चुनौतियां हैं जो वर्ग संख्या या अन्य आकृतियों की संख्या के साथ काम करती हैं, हमारे पास एक नहीं है जो बस पूछती है:

पूर्णांक या n(जहां n>=0) इनपुट के रूप में nएक सत्य मान देते हैं यदि एक पूर्ण वर्ग या एक गलत मान है तो नहीं।


नियम

  • जब तक यह मानक I / O नियमों द्वारा अनुमत है, तब तक आप किसी भी उचित, सुविधाजनक साधन द्वारा इनपुट ले सकते हैं ।
  • आपको उन इनपुटों को संभालने की आवश्यकता नहीं है जो आपकी चुनी हुई भाषा मूल रूप से संभाल सकती है और जो फ्लोटिंग पॉइंट अशुद्धि की ओर ले जाएगी।
  • आउटपुट दो लगातार truthy / falsey मूल्यों (जैसे, से एक होना चाहिए trueया false, 1या 0) - truthy यदि इनपुट एक पूर्ण वर्ग है, falsey अगर यह नहीं है।
  • यह इसलिए सबसे कम बाइट गिनती जीतती है।

परीक्षण के मामलों

Input:  0
Output: true

Input:  1
Output: true

Input:  64
Output: true

Input:  88
Output: false

Input:  2147483647
Output: false

@ नील मुझे अपनी गलती का एहसास हुआ। मुझे लगता है कि सुझाव वापस लेना, और बदले की पेशकश 18014398509481982( 2**54-2) है, जो है एक डबल के साथ प्रदर्शनीय, और जवाब है कि उपयोग का कारण बनता है sqrtविफल।
मेगो

@ मैगो मैं शायद गलत हूं या आप जो कह रहे हैं उसे गलत समझ रहे हैं, लेकिन मुझे यकीन है कि 2**54-2अभी भी बड़ा है एक डबल सुरक्षित रूप से संभाल सकता है, कम से कम जावास्क्रिप्ट में18014398509481982 > 9007199254740991
टॉम

@ मुझे लगता है कि सीमित मूल्य 9007199515875288 है। यह 94906267 का वर्ग नहीं है, क्योंकि यह एक डबल में प्रतिनिधित्व करने योग्य नहीं है, लेकिन यदि आप इसकी वर्गमूल लेते हैं, तो आपको परिणाम के रूप में पूर्णांक मिलता है।
नील

@ 2**54-2एक JS कंसोल में टाइप करें, और जो आपको मिलता है उसकी तुलना करें 18014398509481982(सटीक मान)। जेएस सटीक मूल्य का उत्पादन करता है, इसलिए 2**54-2एक डबल के साथ प्रतिनिधित्व करने योग्य है। यदि वह अभी भी आपको मना नहीं करता है, तो बाइनरी डेटा लें 0100001101001111111111111111111111111111111111111111111111111111, इसे IEEE-754 डबल-सटीक फ़्लोट के रूप में व्याख्या करें, और देखें कि आपको क्या मूल्य मिलता है।
मीगो

3
क्षमा करें, दोस्तों, दोपहर के भोजन के लिए दूर चले गए और ... अच्छी तरह से, यह बढ़ गया! और वहाँ मुझे लगा कि यह एक अच्छी, सरल चुनौती होगी! क्या ऐसा नियम जोड़ना होगा जिसे आपको उन इनपुट्स को संभालने की आवश्यकता न हो जो आपकी चुनी हुई भाषा में फ्लोटिंग पॉइंट अशुद्धि की ओर ले जाते हैं?
शैगी

जवाबों:


27

नीम , 2 बाइट्स

q𝕚

स्पष्टीकरण:

q      Push an infinite list of squares
 𝕚     Is the input in that list?

जब मैं 'अनंत' कहता हूं तो मेरा मतलब है कि जब तक हम लोंगो के अधिकतम मूल्य (2 ^ 63-1) को नहीं मारेंगे। हालांकि, नीम सैद्धांतिक रूप से बड़े BigIntegers के लिए (धीरे) संक्रमण है।

कोशिश करो!


टिप्पणियाँ विस्तारित चर्चा के लिए नहीं हैं; इस वार्तालाप को बातचीत में स्थानांतरित कर दिया गया है ।
डेनिस

दिलचस्प। तो, क्या यह सूची को पूर्व-बफर करता है या क्या यह एक जनरेटर / पुनरावृत्ति है जो इनपुट के अस्तित्व की जांच जारी रखता है जब तक कि यह समाप्त न हो जाए?
पैट्रिक रॉबर्ट्स

@PatrickRoberts क्या हम चैट में बात कर सकते हैं?
ओकेक्स

ज़रूर, बस मुझे उन्नीसवीं बाइट पर पिंग करना । मैं वहाँ कभी-कभार आता हूँ।
पैट्रिक रॉबर्ट्स

खैर, यह है ... वास्तव में
क्रोमियम


8

टीआई-बेसिक, 4 बाइट्स

not(fPart(√(Ans

बस जाँचता है कि वर्गमूल एक पूर्णांक भिन्न / दशमलव भाग की तलाश में पूर्णांक है।


क्या आप एक TIO (या समतुल्य) जोड़ सकते हैं?
शैगी

@ शिशु मुझे नहीं लगता कि कोई भी है। TI-Basic स्वामित्व है और यह केवल TI के कैलकुलेटर पर चलेगा और कैलकुलेटर से ROM चलाने वाले एमुलेटर में, इसलिए यदि आप कैलकुलेटर के मालिक नहीं हैं तो आप कानूनी तौर पर TI-Basic का उपयोग नहीं कर सकते हैं।
आदम

1
@ शैगी यदि आपके पास कोई रॉम है तो आप इसे ऑनलाइन आज़माने के लिए एक एमुलेटर (मेरी प्राथमिकता जस्टिफ़ाइड) का उपयोग कर सकते हैं।
टिमटेक

8

सी #, 27 बाइट्स

n=>System.Math.Sqrt(n)%1==0

ऐसा करने का एक अधिक सही / सटीक तरीका होगा:

n=>System.Math.Sqrt(n)%1<=double.Epsilon*100

इस प्रकार की जाँच के लिए double.Epsilon बेकार है । tl; dr: जब संख्याओं की तुलना> 2, Double.Epsilon मूल रूप से शून्य के समान है। 100 से गुणा करने पर केवल थोड़ी देरी होगी।
रॉबर्ट फ्रेजर

@RobertFraser मैं केवल लिंक किए गए SO पोस्ट के द्वारा गया और इसमें बहुत कुछ नहीं पढ़ा। किसी भी तरह से यह बेकार नहीं है सिर्फ उच्च संख्या में उपयोगी नहीं है।
TheLethalCoder

...<int>==0क्या ...!<int>मुझे लगता है
स्टैन स्ट्रम

@StanStrum C # में नहीं
TheLethalCoder

7

जावास्क्रिप्ट (ईएस 6), 13 बाइट्स

n=>!(n**.5%1)

यदि एन का वर्गमूल एक पूरी संख्या है, तो सही है।

स्निपेट:

f=
n=>!(n**.5%1)

console.log(f(0));
console.log(f(1));
console.log(f(2));
console.log(f(4));
console.log(f(8));
console.log(f(16));
console.log(f(88));
console.log(f(2147483647));


7

डीसी, ९

0?dvd*-^p

सत्य के लिए आउटपुट 1 और झूठी के लिए 0।

इसे ऑनलाइन आज़माएं

0            # Push zero.  Stack: [ 0 ]
 ?           # Push input.  Stack: [ n, 0 ]
  dv         # duplicate and take integer square root.  Stack: [ ⌊√n⌋, n, 0 ]
    d        # duplicate.  Stack: [ ⌊√n⌋, ⌊√n⌋, n, 0 ]
     *       # multiply.  Stack: [ ⌊√n⌋², n, 0 ]
      -      # take difference. Stack: [ n-⌊√n⌋², 0 ]
       ^     # 0 to power of the result.  Stack: [ 0^(n-⌊√n⌋²) ]
        p    # print.

नोट dcकी ^घातांक कमांड 0 0 = 1 और 0 n = 0 देती है, जहाँ n> 0 है।


सुंदर! dcइस तरह के सरल फैशन में उपयोग करने के लिए +1 ।
वाइल्डकार्ड

6

रेटिना , 18 बाइट्स

.+
$*
(^1?|11\1)+$

इसे ऑनलाइन आज़माएं! बेशर्मी से @ मार्टिनएंडर के उत्तर से अनुकूलित है क्या यह संख्या त्रिकोणीय है? लेकिन 6 बाइट्स की लागत में शामिल आधार रूपांतरण के साथ।

ध्यान दें कि क्या यह संख्या त्रिकोणीय है? त्रिकोणीय संख्या के रूप में शून्य का समर्थन करने के लिए आवश्यक कुछ अकथनीय कारण के लिए नहीं था, इसलिए अनुकूलन का एक हिस्सा ?अग्रणी 1 वैकल्पिक बनाने के लिए जोड़ना था , जिससे समूह को रिक्त स्ट्रिंग से मेल खाने की अनुमति मिलती है, और इसलिए एक शून्य इनपुट। हालांकि, अब खाली स्ट्रिंग से मिलान होने के बाद, +ऑपरेटर ने दोहराना बंद कर दिया, अनंत लूप से बचने के लिए जो तब होता जब वह खाली स्ट्रिंग से मेल खाता हुआ लालच रखता (आखिरकार, ^1?निश्चित रूप से मिलान करता रहेगा)। इसका मतलब यह है कि यह समूह में अन्य विकल्प से मेल खाने की कोशिश भी नहीं करता है, इस प्रकार 2, 6, 12 आदि के मैच से परहेज करता है। जैसा कि @MartinEnder बताते हैं, इससे बचने का एक सरल तरीका यह है कि अभी भी खाली स्ट्रिंग का मिलान करना है समूह को एक ही बाइट की गणना के लिए वैकल्पिक बनाते हुए मैच की शुरुआत में लंगर डालें ^(^1|11\1)*$:।


आपके स्पष्टीकरण के लिए आगे देखें कि यह मेल नहीं खाता है 2, 6या फॉर्म के अन्य नंबर क्यों हैं n^2-n। ;) (एक ही बाइट गिनती के लिए उस स्पष्टीकरण से बचने का एक तरीका होगा ^(^1|11\1)*$।)
मार्टिन एंडर

@MartinEnder वही कारण जो आप उपयोग नहीं कर सके (^|1\1)+$, मुझे लगता है?
नील

हाँ यह सही है। बस सोचा था कि शायद इसका उल्लेख करना अच्छा होगा क्योंकि ज्यादातर लोगों ने त्रिकोणीय उत्तर पर मेरी टिप्पणी नहीं पढ़ी है (और इस मामले में यह वास्तव में प्रासंगिक है कि समाधान सही क्यों है, सिर्फ विरोध करने के लिए क्यों इसे आगे नहीं बढ़ाया जा सकता है )।
मार्टिन एंडर

यदि +कोई खाली विकल्प नहीं था , तो रिकॉर्ड के लिए, लूपिंग भी बंद कर देगा, उदाहरण के लिए ((?(1)11\1|1?))+। एक बार एक खाली चलना था, यह किसी भी आगे की कोशिश नहीं करेगा, चाहे वे खाली हों या न हों।
मार्टिन एंडर

@MartinEnder वास्तव में, मेरा मतलब था "अब तुरंत मिलान" के बजाय "मिलान" हो गया है। फिक्स्ड।
नील


6

MATL , 5 4 बाइट्स

लुइस को दो बाइट्स द्वारा मेरे एक बाइट लंबे कोड को कम करने के लिए धन्यवाद, यह सबसे छोटा बना।

t:Um

इसे ऑनलाइन आज़माएं

स्पष्टीकरण:

         % Implicit input
t        % Duplicate it
 :       % Range from 1 to input value
  U      % Square the range, to get 1 4 9 ... 
   m     % ismember, Checks if the input is a member of the range of perfect squares

पुराना उत्तर:

X^1\~

इसे ऑनलाइन आज़माएं!

        % Implicit input
X^      % Square root of input
  1\    % Modulus 1. All perfect squares will have 0, the rest will have decimal value
     ~  % Negate, so the 0 becomes 1, and the decimal values become 0

@ मैं मैं असहमत हूँ। Matl भी ऐसा नहीं कर सकते mod(2**127-, 1000)। जब तक चार अंतिम अंक 0 नहीं होते हैं ....
स्टिव ग्रिफ़िन

आप भी इस्तेमाल कर सकते हैं t:Um। इनपुट के लिए यही काम करता है अप करने के लिए2^53 , चल बिन्दु सीमित परिशुद्धता के कारण
लुइस Mendo

अब मैं देखता हूं कि यह आपके संपादन के समान है, केवल थोड़ा छोटा है :-)
लुइस मेंडो

अच्छी तरह से छिपा हुआ चौकोर कमान! U: str2num / string to array / square। मुझे पता था कि एक स्क्वायर फंक्शन होना था, लेकिन मैं इसे नहीं पा सकी ...
Stewie Griffin

1
@cairdcoinheringaahing जो आंशिक रूप से उद्देश्य पर था। मेरे पास दो समाधान थे, एक 5 बाइट्स था, दूसरा एक 6 बाइट्स। लुइस ने 6 के साथ एक से दो बाइट्स को गोल्फ से बाहर कर दिया। इसलिए मैंने उसके लिए दो बाइट बचाए, लेकिन मैंने केवल स्कोर पर एक बाइट को बचा लिया ...
Stewie Griffin

6

पायथन 3 , 40 38 बाइट्स

2 बाइट बचाने के लिए विद्रूप के लिए धन्यवाद!

lambda n:n in(i*i for i in range(n+1))

इसे ऑनलाइन आज़माएं!

2147483647समय की उचित मात्रा में उत्तर देने के लिए बहुत धीमा । (लेकिन स्मृति को बचाने के लिए एक जनरेटर का उपयोग करके लिखा गया है, क्योंकि यह किसी भी बाइट खर्च नहीं करता है।)

पाइथन 2 में भी काम करता है, हालांकि OverflowErrorएक बड़ी संभावना है rangeकि अगर आप इसे भारी इनपुट के साथ आजमाते हैं। ( MemoryErrorपायथन 2 में भी संभावना होगी, इसके कारण भी range।)



5

बड़ी संख्या के लिए काम नहीं करता है, उदाहरण के लिए4111817668062926054213257208
Emigna

@Emigna ओह क्योंकि यह एक लंबा माना जाता है? मैंने सोचा था कि 05AB1E पायथन 3 का उपयोग करता है
निकोल आउटफर गोल्फ

बड़े इनपुट के लिए विफल रहता है (दिया गया इनपुट है 2**127-1, एक मेर्सेन प्राइम)।
मेगो

यह अजगर 3. का उपयोग करता है। समस्या यह है कि वर्गमूल बड़ी संख्याओं के लिए गोल त्रुटियां देता है।
एमिग्ना

@Emigna ओह ... मुझे लगता है कि मुझे फिर एक और तरीका निकालना होगा, कठिन नहीं होना चाहिए।
आउटगोल्फ

5

पायथन 3 , 19 बाइट्स

lambda n:n**.5%1==0

इसे ऑनलाइन आज़माएं!


बड़े इनपुट के लिए असफल, जैसे 4111817668062926054213257208
L3viathan

25 बाइट्स में फिक्स्ड:lambda n:int(n**.5)**2==n
L3viathan

4
@ L3viathan वह (जिसमें कोई भी समाधान शामिल है sqrt) उन मूल्यों पर विफल होता है जो एक डबल की सीमा से बाहर हैं, जैसे 2**4253-1
मेगो

@totallyhuman एक फ्लोट के बाद %1निश्चित रूप से है <1, इसलिए आपका प्रस्ताव सभी आदानों के लिए सही होगा। ध्यान दें कि n**.5एक फ्लोट है।
लीक नून

5

सेजमैथ , 9 बाइट्स

is_square

इसे ऑनलाइन आज़माएं

बिल्ट-इन फ़ंक्शन वही करता है जो टिन पर कहता है। चूंकि ऋषि प्रतीकात्मक संगणना का उपयोग करते हैं, यह कम्प्यूटेशनल सटीकता त्रुटियों से मुक्त है जो IEEE-754 तैरता है।


5

जाप , 3 बाइट्स

¬v1

इसे ऑनलाइन आज़माएं!

जाप इंटरप्रेटर2**54-2 में ठीक काम करने लगता है लेकिन किसी कारणवश TIO में फेल हो जाता है ...


बड़े इनपुट के लिए विफल रहता है (इनपुट है 2**127-1, एक मेर्सेन प्राइम)।
मेगो

@Mego, वह मानदंड नहीं है जिसके समाधान के लिए उन नंबरों को संभालने की आवश्यकता नहीं है जो भाषा को संभालने में सक्षम हैं?
झबरा

@ झागी जाप जावास्क्रिप्ट पर आधारित है, जिसमें डबल-सटीक फ्लोट्स का उपयोग किया गया है। 2**127-1एक डबल की सीमा के भीतर अच्छी तरह से है।
मेगो

2
@Mego जावास्क्रिप्ट के लिए अधिकतम सुरक्षित int नहीं है 2**53-1?
टॉम

3
@Mego लेकिन जावास्क्रिप्ट की संख्या में केवल 53 बिट्स की सटीकता है, इसलिए जेएस बिल्कुल मूल्य का प्रतिनिधित्व नहीं कर सकता है2**127-1 एक संख्या के रूप । निकटतम यह प्राप्त कर सकता है 2**127
ETHproductions


5

प्रोलोग (एसडब्ल्यूआई) , 27 बाइट्स

+N:-between(0,N,I),N=:=I*I.

इसे ऑनलाइन आज़माएं!

व्याख्या

सभी नंबरों के माध्यम से अधिक या बराबर या उससे 0कम या उसके बराबर की Nजाँच करता है और यह जांचता है कि वह संख्या बराबर है या नहीं N


1
@DLosc किया !
0 '

5

मठगोल्फ , 1 बाइट

°

इसे ऑनलाइन आज़माएं!

मुझे नहीं लगता कि स्पष्टीकरण की आवश्यकता है। मैंने इस चुनौती को देखने से पहले एक "सही वर्ग" ऑपरेटर की आवश्यकता को देखा, क्योंकि भाषा गणित से संबंधित गोल्फ चुनौतियों को संभालने के लिए डिज़ाइन की गई है। मैथॉल्फ के रूप में रिटर्न 0 या 1, बुलियन का प्रतिनिधित्व करने के लिए पूर्णांक का उपयोग करता है।


4

PHP, 21 बाइट्स

<?=(-1)**$argn**.5<2;

यदि वर्गमूल एक पूर्णांक संख्या नहीं है, (-1)**$argn**.5है NAN


मैं इसे कैसे चलाऊं?
टाइटस

@ -Fध्वज और पाइप लाइन के साथ echo 144 | php -F script.php:।
user63956

आह मैं fउस पत्र को भूल गया। धन्यवाद।
टाइटस

4

रूबी, 25 बाइट्स

Math.sqrt(gets.to_i)%1==0

शायद एक छोटा रास्ता है, लेकिन यह सब मुझे मिल गया है।

इसे ऑनलाइन आज़माएं!


PPCG में आपका स्वागत है :) क्या आप इसमें TIO (या समतुल्य) जोड़ सकते हैं , कृपया?
झबरा

TIO को जोड़ने के लिए धन्यवाद, हालांकि यह किसी भी आउटपुट को वापस नहीं करता है।
झबरा

मेरा बुरा, मैंने इसे अपडेट किया।
ग्रेगरी

नहीं, अभी भी काम नहीं कर रहा है।
Shaggy

3

सीजेएम , 8 बाइट्स

ri_mQ2#=

इसे ऑनलाइन आज़माएं!

व्याख्या

पूर्णांक वर्गमूल, वर्ग, मूल संख्या के साथ तुलना करें।


मुझे लगता है कि के अनुसार इस लिए, आपको पहले 2 बाइट्स की जरूरत नहीं है
क्रोमियम

और, वैकल्पिक रूप से, इस उत्तर के विचार का उपयोग करते हुए , आप कर सकते हैं mq1%0=, जो 6 बाइट्स भी है
क्रोमियम

@ क्रोमियम थैंक्स, लेकिन उस मामले में मुझे जरूरत है { ... }कोड को एक फ़ंक्शन बनाने के लिए, उसी बाइट की गिनती
लुइस मेंडेन

वास्तव में, मैं थोड़ा उलझन में हूं कि घुंघराले ब्रेसिज़ को जोड़ना है या नहीं। यदि आप उन्हें नहीं जोड़ते हैं, तो यह वास्तव में एक कार्यक्रम है, जिसकी अनुमति है।
क्रोमियम

@ क्रोमियम ए प्रोग्राम को अपना इनपुट लेने की आवश्यकता है, इसलिए riउस स्थिति में आवश्यक है
लुइस मेंडेन

3

गणितज्ञ, १३ बाइट्स

AtomQ@Sqrt@#&

इसे ऑनलाइन आज़माएं!


में नहीं बनाया गया? अजीब ....
TheLethalCoder

1
आप उपयोग कर सकते हैं AtomQके बजाय IntegerQ
मार्टिन एंडर

1
बेशक झबरा ...
J42161217

1
आप अभी भी उपयोग कर सकते हैं @*
मार्टिन एंडर

4
AtomQ@*Sqrtके लिए एक पर्याय है AtomQ@Sqrt@#&। उदाहरण के लिए, AtomQ@*Sqrt@4रिटर्न Trueऔर AtomQ@*Sqrt@5रिटर्न False। (पूर्वता के कारण, AtomQ@*Sqrt[4]सही काम नहीं करता है, लौटकर AtomQ@*2।)
ग्रेग मार्टिन


3

AWK , 27 + 2 बाइट्स

{x=int($0^0.5);$0=x*x==$1}1

इसे ऑनलाइन आज़माएं!

मनमाना परिशुद्धता के लिए ध्वज +2का उपयोग करने के लिए बाइट्स जोड़ें -M। मैंने मूल रूप से स्ट्रिंग तुलना का उपयोग किया था, क्योंकि बड़ी संख्या की तुलना समान थी, भले ही वे नहीं थे, लेकिन यह sqrtभी महत्वपूर्ण मान लौटा रहा था। 2^127-2एक आदर्श वर्ग नहीं होना चाहिए।


3

टी-एसक्यूएल, 38 बाइट्स

SELECT IIF(SQRT(a)LIKE'%.%',0,1)FROM t

वर्गमूल में एक दशमलव बिंदु की तलाश करता है। IIFMS SQL के लिए विशिष्ट है, MS SQL Server 2012 में परीक्षण और कार्य करता है।

इनपुट कॉलम में है एक पूर्व मौजूदा तालिका के टी प्रति, हमारे इनपुट नियम


3

ओम , 2 बाइट्स

Ʋ

CP-437एन्कोडिंग का उपयोग करता है ।

व्याख्या

अंतर्निहित इनपुट -> बिल्कुल सही वर्ग निर्मित -> अंतर्निहित आउटपुट ...


3

जावा 8, 20 बाइट्स

n->Math.sqrt(n)%1==0

इनपुट एक है int

इसे यहाँ आज़माएँ।


विवादास्पद नहीं: प्रश्न स्पष्ट रूप से कहता है "एक पूर्णांक n (जहां n> = 0) दिया गया है"। सबसे छोटा उत्तर सबसे अच्छा है। संपादित करें: +1 नहीं होगा जब तक कि सबसे छोटा जवाब पहला नहीं है: p
ओलिवियर ग्रेजायर

@ ओलिवियरग्रेयर हम्म, यह देखने का एक अच्छा तरीका है। लेकिन आप अभी भी पता नहीं कि क्या यह एक है int, long, short। और उन सवालों के साथ जहां वे पूर्णांक के लिए पूछते हैं लेकिन इनपुट प्रारूप लचीला है, मैं कभी-कभी कुछ बाइट्स को बचाने के लिए स्ट्रिंग इनपुट का उपयोग करता हूं। व्यक्तिगत रूप से मुझे लगता है कि उपयोग n->करना ठीक है, और आपको बस यह बताना चाहिए कि प्रकार क्या है, लेकिन जाहिर है कि हर कोई इससे सहमत नहीं है। दूसरी ओर, एक जावा 7 उत्तर इतिहास से आ रहा है, से अधिक समझ बनाने के int c(int n){return ...;}लिए जा रहा (int n)->...है n->...(भले ही मैं व्यक्तिगत रूप से दूसरे को पसंद करता हूं, बेशक)।
केविन क्रूज़सेन

2
@ ओलिवियरग्रेयर ठीक है, मैंने इसे बदल दिया है। इस उत्तर में चर्चा को पढ़ने के बाद , मैं इस निष्कर्ष पर पहुंचा कि इनपुट को जावा में एक पूर्णांक है, इनपुट को बताते हुए की तुलना में कोई अंतर नहीं है इनपुट CJam में दो स्ट्रिंग्स की सूची या MATL में स्ट्रिंग के सेल सरणी है
केविन क्रूज़सेन


3

++ , 24 जोड़ें 13 11 बाइट्स

+?
S
%1
N
O

इसे ऑनलाइन आज़माएं!

मैंने शीर्ष पर क्लंकी फ़ंक्शन को हटा दिया और 11 बाइट्स को हटाने के लिए प्रश्न के शरीर में इसे फिर से लिखा।

जैसा कि पहले खंड में पहले ही समझाया गया है, आइए केवल यह जानें कि नया भाग कैसे काम करता है

S   Square root
%1  Modulo by 1. Produced 0 for integers and a decimal for floats
N   Logical NOT

पुराना संस्करण, 24 बाइट्स

D,i,@,1@%!
+?
^.5
$i,x
O

इसे ऑनलाइन आज़माएं!

शीर्ष पर समारोह ( D,i,@,1@%!) कार्यक्रम का मुख्य हिस्सा है, तो चलिए अधिक विस्तार में जाते हैं।

D,     Create a function...
  i,   ...called i...
  @,   ...that takes 1 argument (for this example, let's say 3.162 (root 10))
    1  push 1 to the stack; STACK = [1, 3.162]
    @  reverse the stack;   STACK = [3.162, 1]
    %  modulo the stack;    STACK = [0.162]
    !  logical NOT;         STACK = [False]

+?     Add the input to accumulator (x)
^.5    Square root (exponent by 0.5)
$i,x   Apply function i to x
O      Output the result

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.