(([{}](((()))<>))<>){<>({}({}({})))}{}{}
गेहूं के जादूगर और मेरे पास इस सवाल पर एक विवाद था । जब हमने अपने समाधानों को पोस्ट करने का फैसला किया तो हम 42 बाइट्स में बंधे थे, लेकिन मुझे उनके समाधान का एक 2 बाइट गोल्फ मिला। हमने तय किया कि टाई ब्रेकर के रूप में गिना जाएगा (मेरा समाधान नीचे है)।
इसे ऑनलाइन आज़माएं!
स्पष्टीकरण:
# Set up the stacks like this: -input
1 -input
1 1
(([{}](((()))<>))<>) ^
# Output 1 for triangular and 0 for non-triangular
{<>({}({}({})))}{}{}
पूर्ण विवरण के लिए कृपया गेहूं के जादूगर का उत्तर देखें ।
(([({})])<>){(({}())<>{}({})){((<>))}{}{}}
सत्य के लिए आउटपुट 0\n
(शाब्दिक न्यूलाइन), और मिथ्या के लिए रिक्त स्ट्रिंग।
इस विचार को 1 तब 2 और फिर 3 को इनपुट तक लाना है। यदि आप 0 हिट करते हैं, तो आप जानते हैं कि यह एक त्रिकोणीय संख्या है, इसलिए आप वहां रुक सकते हैं।
इसे ऑनलाइन आज़माएं! (सच्चाई)
इसे ऑनलाइन आज़माएं! (falsy)
# Push -input on both stacks. One is a counter and the other is a running total
(([({})])<>)
# Count up from -input to 0
{
# Push the new total which is: (counter += 1) + total (popped) + input (not popped)
# This effectively adds 1, then 2, then 3 and so on to the running total
(({}())<>{}({}))
# If not 0
{
# Push to 0s and switch stacks to "protect" the other values
((<>))
# End if
}
# Pop the two 0s, or empty the stack if we hit 0
{}{}
# End loop
}
यहाँ एक 46 बाइट समाधान है जो मुझे दिलचस्प लगा।
{<>(({}())){({}[()]<>{(<({}[()])>)}{}<>)}{}<>}
सत्य के लिए आउटपुट 0\n
(शाब्दिक न्यूलाइन), मिथ्या के लिए रिक्त स्ट्रिंग।
विचार एक समय में लगातार संख्याओं, 1 द्वारा इनपुट से नीचे की गणना करना है। जैसे input - (1) - (1,1) - (1,1,1)
। हर बार हम घटाते हैं, अगर हम 0 पर नहीं हैं, तो हम स्टैक पर एक अतिरिक्त मूल्य छोड़ते हैं। इस तरह, अगर हम 0 पर हैं और अभी भी घट रहे हैं जब हम पॉप करते हैं तो हम स्टैक पर अंतिम मान निकालते हैं। यदि इनपुट एक त्रिकोणीय संख्या थी, तो हम बिल्कुल 0 पर समाप्त हो जाएंगे, और 0 को पॉप नहीं करेंगे।
इसे ऑनलाइन आज़माएं! सच्चाई
यह ऑनलाइन की कोशिश करो! falsy
# Implicit input (call it I)
# Until we reach 0, or the stack is empty
{
# Add 1 to the other stack and push it twice. This is our counter.
<>(({}()))
# While counter != 0
{
# counter -= 1
({}[()]
# if I != 0
<>{
# I -= 1, and push 0 to escape the if
(<({}[()])>)
# End if
}
# Pop from the stack with I. This is either the 0 from the if, or I
{}
# Get ready for next loop End while
<>)
# End While
}
# Pop the counter that we were subtracting from
{}<>
# End Until we reach 0, or the stack is empty.
}