कोड को संयोजन लॉक में क्रैक करें


22

तस्वीर में एक की तरह एक मानक संयोजन लॉक को देखते हुए। इसे अनलॉक करने का तरीका कोड लाइन में 4 नंबरों को संरेखित करना है। वर्षों के वफादार सेवा के बाद आपको लॉक फैक्ट्री से निकाल दिया गया है और आपने उन्हें भेजने से पहले ताले को नहीं उछलकर सटीक बदला लेने का फैसला किया है, इस प्रकार हर लॉक को संयोजन लाइन पर अनलॉक करने के लिए संयोजन के साथ छोड़ दिया।

संयोजन ताला

आप यह भी जानते हैं कि अन्य पंक्तियों में संख्याओं के क्रम को देखकर यह पता लगाना संभव है कि संयोजन रेखा पर क्या संख्याएँ होनी चाहिए (और इसलिए इसे अनलॉक करने के लिए संयोजन है)।

यदि लॉक पर हर लाइन को संयोजन रेखा (लाइन जो लॉक को अनलॉक करती है) के लिए लाइन 0 से शुरू होकर नंबर 9 तक दी जाती है। उदाहरण के लिए, यदि लाइन 4 पर नंबर हैं 5336, तो इसे अनलॉक करने के लिए संयोजन होगा 1992

दुर्भाग्य से ताले पहले से ही पैक किए गए हैं और प्रत्येक लॉक का आपका दृश्य अस्पष्ट है, इसलिए आप केवल लॉक की विभिन्न लाइनों पर संख्या देख सकते हैं।

चुनौती

4 अंकों के अंकों को देखते हुए, जहां पूर्णांक का पहला अंक लाइन नंबर का प्रतिनिधित्व करता है और दूसरा अंक उस लाइन पर दिखाई देने वाले नंबर का प्रतिनिधित्व करता है, जो संयोजन को लॉक से बाहर करता है। उदाहरण के लिए यदि आप इनपुट करते हैं:

57 23 99 45

तो यह उत्पादन करना चाहिए:

2101

या

25 78 63 15

तथा

3174

मान लें कि इनपुट हमेशा 72 25 64 72 18 के रूप में 4 सकारात्मक पूर्णांक होगा।

यह , इसलिए बाइट्स की संख्या में सबसे कम कार्यक्रम जीतता है।

इसके अलावा यह मेरा पहला सवाल है, इसलिए किसी भी प्रतिक्रिया की सराहना की जाती है।


मुझे लगता है कि आपको इनपुट को स्पष्ट करने की आवश्यकता है। आप कहते हैं " पूर्णांक के 4 जोड़े दिए " और फिर एक उदाहरण दें 57 23 99 45। यह पूर्णांक के चार जोड़े नहीं हैं: यह चार पूर्णांक हैं। और कुछ जवाब मान रहे हैं कि उन्हें एक स्ट्रिंग के रूप में मिल रहा है, जबकि अन्य यह मान रहे हैं कि यह 4-ints के रूप में तैयार है।
पीटर टेलर

मैं असहमत हूं, इस तथ्य ने कहा कि पूर्णांक के चार जोड़े ने इनपुट के प्रारूप को स्पष्ट किया, 57 पूर्णांक जोड़ी 5 और 7 है, पूर्णांक 57 नहीं। मेरी पहली धारणा यह थी कि रेखा 57 थी और संयोजन 23 था।
Qwerty01

1
कैसे के बारे में "अंकों के जोड़े?" यह बहुत अधिक स्पष्ट और सटीक होगा (और अग्रणी 0एस के साथ भी काम करता है )।
शराबी

तकनीकी रूप से, सही शब्द क्रमपरिवर्तन लॉक होगा । अधिकांश "संयोजन ताले" वास्तव में क्रमपरिवर्तन ताले हैं, क्योंकि अंकों के क्रम में अंतर होता है।
nyuszika7h

तकनीकी रूप से हाँ यह सही है, लेकिन मुझे नहीं लगता कि यह आकर्षक शीर्षक है।
रोरी मैकपरेलॉय

जवाबों:


32

CJam, 9 8 बाइट्स

ea9fbAf%

अंक-जोड़े को कमांड-लाइन तर्क के रूप में पढ़ता है। करने के लिए कोड ऑनलाइन की कोशिश , परिवर्तनea करने के लिए lS/नकली stdin से पढ़ने के लिए।

उदाहरण चलाते हैं

$ cjam <(echo ea9fbAf%) 57 23 99 45; echo
2101
$ cjam <(echo ea9fbAf%) 25 78 63 15; echo
3174

यह काम किस प्रकार करता है

अंक d का वर्ण कोड 48 + d है । इस प्रकार, दो-अंकीय स्ट्रिंग xy को आधार मानकर 9 नंबर की पैदावार 9 * (48 + x) + (48 + y) = 10 * (48 + x) + y - x - y - x (mod 10) है

ea       " Push the array of command-line arguments.                                      ";
  9fb    " Mapped base 9 conversion; replace each string 'xy' with (9 * ord(x) + ord(y)). ";
     Af% " Take the results modulo 10.                                                    ";

दमित, आप किसी और को जीतने नहीं दे सकते, नहीं? : पी
ऑप्टिमाइज़र

मुझे नहीं लगता है कि हमें इससे बेहतर CJam उत्तर मिलेगा
रोरी मैकपरेलॉय

1
वहां अभी क्या हुआ?
वार

1
@DigitalTrauma: ज़रूर, आगे बढ़ो। स्ट्रिंग "99"को वास्तव में सरणी के रूप में व्याख्या की [57 57]जाती है b; "xy"9bके रूप में कार्यान्वित किया जाता है 9 * ord(x) + ord(y)। मुझे अपने उत्तर में इसे जोड़ना चाहिए।
डेनिस

4
अगर हम मुद्रण योग्य ASCII के लिए संभव समाधानों को प्रतिबंधित करते हैं तो 10,000 मुश्किल से सभी 2-चरित्र कार्यक्रमों को कवर करते हैं ।
डेनिस

13

CJam, 13 12 11 वर्ण

User23013 के लिए धन्यवाद, अब यह 11 अक्षरों के नीचे है :)

4{Ar:--A%}*

स्पष्टीकरण:

4{       }*     "Run the code block 4 times";
   r            "Read the next input token (whitespace separated)";
    :-          "Subtract 2nd number from the first treating r as a 2 numbered string";
  A   -         "Subtract the result of above from 10";
       A%       "Take modulus of 10 and store it on stack";

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

मुझे पता है कि यह और अधिक गोल्फ हो सकता है। लेकिन CJam पर यह मेरा पहला वास्तविक प्रयास है और मैं अनुभव से सीमित हूं :)


वैकल्पिक रूप से, 1 अतिरिक्त वर्ण में समान कार्य करने के अन्य तरीके:

l~]{_A/-A%}/     // My previous solution

या

4{ri_A/-A%}*     // As pointed out by Ingo

या

ea{i_A/-A%}/     // If input is passed through command line

मुझे इसकी प्रतीक्षा थी। खैर, अगले हफ्ते ...
सोहम चौधरी

पहले तीन वर्ण वैकल्पिक रूप से हो सकते थे l~]। मुझे लगता है कि इनपुट को तीन से कम के साथ पार्स करना संभव होना चाहिए, लेकिन मैंने पहले कभी सीजेएम का उपयोग नहीं किया है: /
इंग बोर्क

4{ri_A/-A%}*एक बाइट कम है
इंगो बुर्क

1
आह, या आपने मेरी पूर्व टिप्पणी से क्या बनाया। खैर अब दो 12 बाइट समाधान हैं! :)
इंगो बुर्क

3
या 4{Ar:--A%}*
jimmy23013

6

गोल्फस्क्रिप्ट (14 13 )

इसे यहाँ ऑनलाइन आज़माएँ

यह ऑप्टिमाइज़र के समाधान के रूप में बहुत समान है , लेकिन एक अलग भाषा में। यह एक अलग तरीके से दृष्टिकोण करना कठिन है क्योंकि समस्या काफी सरल है , इसलिए टाई निश्चित रूप से ऑप्टिमाइज़र के पास जाती है, जिसकी प्रविष्टि वैसे भी पहले थी।

~]{.10:^/-^%}/

बाइट्स की समान संख्या के लिए आप कर सकते हैं

~]{.10/- 10%}/

गोल्फस्क्रिप्ट में मूल्य 10 के साथ कोई पूर्व परिभाषित चर नहीं?
ऑप्टिमाइज़र

@Optimizer दुर्भाग्य से, नहीं। बहुत बुरा है, क्योंकि स्टैक पर इनपुट पहले से ही सीजेएम पर लाभ होगा।
इंगो बुर्क

हाँ, यह CJam (स्टैक पर इनपुट के साथ) में 10 वर्ण हो सकता है या गोल्फस्क्रिप्ट में 11 (पूर्व निर्धारित चर के साथ)
अनुकूलक

मेरे पास गोल्फक्राफ्ट में 12 हो सकते हैं, अगर केवल मुझे अंतरिक्ष छोड़ने की आवश्यकता नहीं है - 10
इंगो बुर्क

1
हे, यहां तक ​​कि भाषाओं में सबसे छोटी उनकी छोटी कॉमेडी हैं: पी
ऑप्टिमाइज़र

6

जीएनयू डीसी , 14 बाइट्स

उधार लेना @ डेनिस का चतुर आधार 9 चाल :

9i[?A%nd]dxxxx

इनपुट पूर्णांक STDIN, प्रति पंक्ति एक से पढ़ा जाता है।

स्पष्टीकरण:

9i                # Set input radix to 9
  [     ]         # push a macro, defined thus:
   ?              #   read number from STDIN and push
    A             #   push literal 10
     %            #   calculate number mod 10
      n           #   print, with no newline
       d          #   duplicate macro
         d        # duplicate macro
          xxxx    # execute the macro 4 times    

आउटपुट:

$ for i in 57 23 99 45; do echo $i; done | dc ./combolock.dc
2101$ 
$ for i in 25 78 63 15; do echo $i; done | dc ./combolock.dc
3174$ 
$ 

पिछला उत्तर, 18 बाइट्स:

क्योंकि मुझे लगा कि मैं इसके साथ "गोल्फिंग" भाषाओं के करीब पहुंच सकता हूं (लेकिन नहीं):

[A?A~--A%n]dddxxxx

1
आप एक बाइट बचा सकते हैं:9i[?A%nd]dxxxx
डेनिस

@ डेनिस - शानदार! अब मैं गोल्फस्काइप और एपीएल के साथ गर्दन-गर्दन हूँ!
डिजिटल ट्रॉमा

6

सी 64 63 56 या 61

यदि इनपुट फ़ाइल से पाइप किया जा सकता है

main(a){while(scanf("%d",&a)>0)putchar(48+(a-a/10)%10);}

यदि इनपुट को स्टडिन में टाइप किया जाना चाहिए

i;main(a){for(;i++-4;putchar(48+(a-a/10)%10))scanf("%d",&a);}

एक लूप में चार नंबरों को पढ़ता है और फिर प्रत्येक अंक को मूल्य से पहला अंक घटाकर और परिणाम modulo 10 को प्रिंट करके संसाधित करता है।

नीचे दिए गए विभिन्न टिप्पणियों के लिए बचत और प्रिंटफ के बजाय पुचर का उपयोग करना


ठंडा। आप इस तरह से scanfबाहर रखकर एक अल्पविराम बचा सकते हैंfor()a,i;main(){for(;i++-4;printf("%d",(a-a/10)%10))scanf("%d",&a);}
लेवल रिवर सेंट

आप a*.9इसके बजाय 2 बाइट बचा सकते हैंa-a/10
संशोधित करें

@steveverrill इसे पसंद करें। तो लूप के लिए सब कुछ डालने पर ध्यान केंद्रित किया, जो मुझे याद आया कि
अल्चाइमिस्ट

1
@AcidShout क्षमा करें - यह काम नहीं करता है। उदाहरण के लिए 78 * .9 = 70.2, जबकि 78 - 78/10 = 71. साथ ही .9 का उपयोग करते हुए तर्क को दोगुना करने के लिए प्रेरित करता है इसलिए मैं मॉड नहीं ले सकता।
अल्काइमर

आप एक whileलूप का उपयोग करके कुछ बाइट्स बचा सकते हैं और aएक तर्क के रूप में घोषित कर सकते हैं main:main(a){while(scanf("%d",&a)>0)printf("%d",(a-a/10)%10);}
डेनिस

5

पायथन 3, 64

सीधा।

print(''.join([(i-i//10)%10 for i in map(int,input().split())]))

इसके [2, 1, 0, 1]बजाय , यदि मुझे प्रिंट करने की अनुमति दी जाए, तो यह छोटा हो सकता है ( 46 ):

print([i%10-i//10 for i in map(int,input().split())])

आप str((i-i//10)%10)एक सेकंड का उपयोग करने के बजाय सीधे ले जाकर कुछ बचा सकते हैं map()। मैंने जनरेटर के साथ शुरुआत भी खदान के लिए की थी, लेकिन पाया कि एक वास्तविक forलूप समाप्त हो गया।
DLosc

हाँ, उस के लिए धन्यवाद!
सोहम चौधरी

आप सूची-समझ का उपयोग क्यों कर रहे हैं? 2 पात्रों को बचाने के लिए genexps का उपयोग करें: print(''.join((i-i//10)%10for i in map(int,input().split())))। इसके अलावा अगर रिक्त स्थान आउटपुट में अनुमति है तो आप joinटपल-अनपैकिंग से बच सकते हैं और इसका उपयोग कर सकते हैं print(*((i-i//10)%10for i in map(int,input().split()))):।
बकुरीउ

मुझे लगता हे तुम सही हो।
सोहम चौधरी

4

सी, 92

#define a(n) ,(10+v[n][1]-*v[n])%10
main(int c,char**v){printf("%d%d%d%d"a(1)a(2)a(3)a(4));}

कमांडलाइन से इनपुट प्रत्येक तर्क के पहले ASCII कोड को दूसरे से घटाता है, 10 जोड़ता है और modulo 10 लेता है।

मुझे लगता है कि यह पहली बार है जब मैंने printfचार %s के साथ लिखा है और कोई अल्पविराम (अल्पविराम में है #define.)


#define f scanf("%c%c ",&a,&b);putchar(48+(9*a+b)%10)इसके बाद a,b;main(){f;f;f;f;}18 बाइट्स छोटी होंगी।
डेनिस

@ डेनिस यह एक महान सुधार है, लेकिन यह मूल रूप से एक पूरी तरह से अलग कार्यक्रम है। मुझे लगता है कि अगर कोई इसे पोस्ट करता है, तो यह आपको होना चाहिए, मुझे नहीं। मुझे यकीन नहीं है कि यदि अंतरिक्ष scanfआवश्यक है, तो यह देखते हुए कि scanfव्हॉट्सएप को केवल एक विभाजक के रूप में माना जाता है। Alchymist का C. में एक बेहतर विचार है, लेकिन ऐसा लगता है कि आप इसे पहले ही अपने Cjam उत्तर के साथ जीत चुके हैं।
लेवल रिवर सेंट

हाँ, मैंने यह देखते हुए शुरू किया कि अंतरिक्ष को a(n)छोड़ दिया जा सकता है, तब मैंने देखा कि printf("%d%,...)आपके मैक्रो को लगाने से कुछ बाइट्स बचेंगे और आखिरकार मैं थोड़ा दूर चला गया ... - %cएक चरित्र को पढ़ने के बाद से ही स्पेस की आवश्यकता होती है, कोई भी चरित्र, इसलिए दूसरे रन पर यह 32 को स्टोर करेगा a। - C के साथ CJam को पीटना कठिन साबित होना चाहिए। printf()जब तक मेरा जवाब है ...
डेनिस

4

जावा - 203 बाइट्स

सिर्फ इसलिए कि वहाँ है एक जावा प्रवेश होने के लिए, मैं इस कोड का मौका (प्रथम प्रस्तुत कभी) गोल्फ देने के लिए एक अच्छा अवसर देखा।

class M{public static void main(String[] a){String r="";for(int i=0;i<4;i++){int l=Byte.valueOf(a[i].substring(1));int f=Byte.valueOf(a[i].substring(0,1));r+=(l-f<0)?l-f+10:l-f;}System.out.print(r);}}

अगर कुछ सुधार के लिए जगह है, तो मुझे उनके बारे में जानकर खुशी होगी; ;-)


आप [युक्तियां] खोज सकते हैं और आपको शुरू करने के लिए गोल्फिंग के बारे में विभिन्न युक्तियां प्राप्त कर सकते हैं :)
ऑप्टिमाइज़र

अच्छा है धन्यवाद! कुछ युक्तियों की जाँच ने मुझे 13 बाइट्स दूर करने में मदद की :)
सैंडर

3

लुआ - 46 वर्ण

while''do a,b=io.read(1,1,1)print((b-a)%10)end

एक बार में तीन वर्णों को पढ़ता है (अंत में एक स्थान को इनपुट करने की छोटी दया मुझे प्रदान करें), और आखिरकार बी और स्ट्रिंग स्ट्रिंग-वाई हैं ... बा मैग्‍युचुअली उन्हें एक स्वस्थ बच्चे पूर्णांक की कल्पना करने की अनुमति देता है। क्या छपाई करते समय रैप-अराउंड चेक होता है।

How I run it:


1
क्या आप एक उदाहरण डेटा इनपुट / आउटपुट प्रदान कर सकते हैं, Ideone
रोरी मैकपरेलो

@ हैरी12345 आह, इसके बारे में क्षमा करें। अराजकता गोल्फ मेरे दिमाग को स्थापित कर रहा है कि मैं कैसे स्टडपुट को लागू करता हूं। मैं शायद इसे बेहतर तरीके से कोड कर सकता था, लेकिन मेह, लुआ भयानक है। मैंने कार्यक्रम चलाने वाले एक उदाहरण को पोस्ट किया।
एंडोडा

3

जावास्क्रिप्ट ईएस 6 - 53 43 बाइट्स

f=n=>n.replace(/.. ?/g,a=>(1+a[1]-a[0])%10)

बहुत सीधा कार्य, संख्याओं को प्राप्त करने के लिए रेगेक्स का उपयोग करता है। इसे http://jsfiddle.net/efc93986/1/ पर देखें । यदि कार्यों की अनुमति नहीं है, तो 52 बाइट्स पर एक स्टैंडअलोन कार्यक्रम:

alert(prompt().replace(/.. ?/g,a=>(1+a[1]-a[0])%10))

चूंकि ES6 वर्तमान में केवल फ़ायरफ़ॉक्स पर काम करता है, निम्न कोड किसी भी आधुनिक ब्राउज़र पर 70 बाइट्स पर काम करता है:

alert(prompt().replace(/.. ?/g,function(a){return(1+a[1]-a[0])%10}))

मैं अपने प्यार 1+
नील

1
प्रश्न वैध इनपुट मानने के लिए कहता है, इसलिए आप ...?इसके बजाय उपयोग कर सकते हैं /\d+ ?। वापसी के बाद का स्थान छोड़ा जा सकता है। इसके अलावा, चूंकि कोई विशिष्ट I / O निर्दिष्ट नहीं किया गया था, इसलिए आपको फ़ंक्शन का उपयोग करने में सक्षम होना चाहिए।
डेनिस

1
a-a[0]इसके बजाय भी 1+a[1]-a[0]काम करना चाहिए।
डेनिस

2

पायथन 2 - 33 बाइट्स

for i in input():print(i-i/10)%10

अल्पविराम-सीमांकित उपयोगकर्ता इनपुट स्वीकार करता है। उदाहरण इनपुट:

29,26, 31, 88

आउटपुट:

7
4
8
0

यदि आउटपुट को उदाहरण से मिलान करने के लिए आवश्यक है तो यह बहुत लंबा है। 47 बाइट्स:

print"%d"*4%tuple((i-i/10)%10 for i in input())

input()मेरे अजगर 2 दुभाषिया में काम नहीं करता है।
सोहम चौधरी

@SohamChowdhury क्या आपने कॉमा का उपयोग किया है?
feersum

2
ओह, नहीं, मैंने नहीं किया। यह अब काम करता है। एक साइड नोट पर, मुझे लगता है कि आपको स्पेस-सीमांकित इनपुट प्रति युक्ति लेने की आवश्यकता है।
सोहम चौधरी

3
मैं मानता हूं, इनपुट को स्पेस डी-सीमित होना चाहिए
रोरी मैकपरेलो

2

एपीएल, १४

10|{--/⍎¨⍕⍵}¨⎕

व्याख्या
स्क्रीन से इनपुट लेती है। अंतरिक्ष-पृथक मानों को एक सरणी के रूप में पार्स किया जाता है।
{...}¨प्रत्येक नंबर के लिए, इसे फंक्शन में फीड करें।
⍎¨⍕⍵तर्क लेता है, इसके अंकों की एक सरणी बनाता है।
--/यूनिट्स माइनस दसियों की गणना करता है।
10|mod 10।


1
यह 14 वर्ण हो सकता है, लेकिन यह 24 बाइट्स है
इंगो बुर्क


लेकिन कोड गोल्फ के लिए हम यूटीएफ -8 में गिनती करते हैं, कुछ विशेष आकर्षण नहीं। यह बस एक खामियाजा होगा और बहुत आसानी से दुरुपयोग किया जा सकता है।
इंगो बुर्क

1
@ IngoBürk के अनुसार meta.codegolf.stackexchange.com/a/961/6972 उत्तर किसी भी एन्कोडिंग में एन्कोड किया जा सकता है जब तक कि ओपी अन्यथा नहीं कहता। एपीएल वर्णों के लिए वास्तव में एक आईबीएम कोडपेज है जो एकल-बाइट मानचित्रण है, जो कि वास्तव में डायलॉग यूनिकोड 3.0 से पहले उपयोग करता था। यदि आप यूनिकोड पर जोर देते हैं, तो क्या होगा यदि मैं एक नई भाषा का आविष्कार करता हूं जो गैर-यूनिकोड वर्णों का उपयोग करती है? आप उसके लिए बाइट्स कैसे गिनेंगे?
२०

मैं डिफ़ॉल्ट शपथ ले सकता था UTF-8। 14 बाइट्स तो यह है।
इंगो बुर्क

2

जे - 20 १५

गैर-क्रिया रूप (फ़ंक्शन परिभाषा के बजाय कथन के रूप में) यह 5 वर्ण छोटा है:

10|-~/|:10#.inv

क्रिया रूप जो एक अच्छी ट्रेन है :

10|[:-~/[:|:10#.inv]

यह इनपुट उदाहरण इनपुट पर प्रयोग किया जाता है:

   10|-~/|:10#.inv 57 23 99 45
2 1 0 1
   10|-~/|:10#.inv 25 78 63 15
3 1 7 4

rotd =: 10|[:-~/[:|:10#.inv] NB. verb form

   rotd 25 78 63 15
3 1 7 4
   rotd 57 23 99 45
2 1 0 1

2

हास्केल 60 58

main=interact$show.map((\x->mod(x-x`div`10)10).read).words

एकल चरित्र अंक, हास्केल गोल्फ में एक वास्तविक दासता।


2

पर्ल: 38 40

print abs($_-int$_/10)%10for split" ",<>

आउटपुट:

% perl code.pl
57 23 99 45
2101

25 78 63 15                                     
3174

1
1. अंडरस्कोर मार्कडाउन सिंटैक्स हैं, इसलिए आपका कोड थोड़ा गड़बड़ हो गया। इसे रोकने के लिए, चार स्थानों के साथ इंडेंट कोड। 2. absआवश्यक नहीं है; x - x/10नकारात्मक नहीं हो सकता। 3. यदि आप झंडे का उपयोग करते हैं -040pe(आमतौर पर 5 बाइट्स के रूप में गिना जाता है) तो अंतरिक्ष-सीमांकित इनपुट पर पुनरावृति करने के लिए, आप अपने कोड को छोटा कर सकते हैं $_=($_-int$_/10)%10। 4. यदि आप कमांड-लाइन झंडे से बचना पसंद करते हैं, तो आप $/=$;कॉल को सेटिंग और रिमूव करके कुछ बाइट्स बचा सकते हैं split
डेनिस

1

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

$*.map{|n|a,b=n.bytes;$><<(b-a)%10}

व्याख्या

इनपुट को कमांड लाइन तर्क के रूप में लिया जाता है। String#bytesइंटेर्स का एक सरणी (ASCII वर्ण कोड) देता है। केवल अंतिम और पहले वर्ण कोड के बीच का अंतर महत्व का है, न कि खुद इंटेर्ज का।


1

C # & LinqPad: 104

Util.ReadLine<string>("").Split(' ').Select(s =>(s[1]-s[0])).Aggregate("",(r,a)=>r+(a<0?10+a:a)).Dump();

1

C ++ 118

int main()
{
int a,b,c;
for(int i=0; i<4; i++)
{
cin>>a;
b=a/10;
a=a%10;
c=a-b;
if(c<0)c+=10;
cout<<c;
}
}

1. सुनिश्चित नहीं हैं कि अन्य compilers के बारे में है, लेकिन जीसीसी की आवश्यकता है #include<iostream>और std::इससे पहले कि cinऔर cout। 2. आपको सशर्त की जरूरत नहीं है यदि आप छोड़ देते हैं a=a%10। 3. आपको चर bऔर cलूप की आवश्यकता नहीं है , और (कुछ संशोधन के साथ) कोष्ठक के चारों ओर कोष्ठक।
डेनिस

1
@ सीन: कृपया कोड को संशोधित करने वाले संपादन को मंजूरी न दें। इस विशेष मामले में, संपादन ने उत्तर को अमान्य बना दिया। इसने पहली पंक्ति को भी हटा दिया, जो सभी उत्तरों में मौजूद होनी चाहिए।
डेनिस

1
(CC @TeunPronk)
डेनिस

@ डेनिस आमतौर पर इस साइट पर जवाब देते हैं जिसमें प्रीप्रोसेसर लाइनें शामिल नहीं हैं। मैंने लाइनों को छोड़ दिया #include<iostream>औरusing namespace std;
bacchusbeale

मुझे पता है कि आमतौर पर बाइट की गिनती में शामिल नहीं होते हैं, लेकिन मुझे लगता है कि उन्हें जवाब में उपस्थित होना चाहिए।
डेनिस

1

PHP - 90 अक्षर

सोचा था कि मैं कोड गोल्फ को एक कोशिश दूंगा, तो यह मेरा पहला प्रयास है - शायद अधिक गोल्फ हो सकता है।

<?php $a=array(57,23,99,45);foreach($a as$b){echo abs(substr($b,0,1)-substr($b,1,1)%10);}

58 वर्ण (इस्माइल मिगुएल के सौजन्य से)

for($i=0,$a=$_GET[n];$i<8;)echo abs($a[$i++]-$a[$i++]);

का उपयोग कर फ़ाइल

file.php?n=57239945

इस कोड को आज़माएं: <? for($i=0;$i<4;)echo abs($_GET[n][$i]%10);जो 44 वर्ण लंबा है। का उपयोग कर एक ब्राउज़र से प्रवेश file.php?n[]=xx&n[]=yy&n[]=xy&n[]=yx। (अनटाइटेड कोड)
इस्माइल मिगुएल

अच्छे विचार का उपयोग करके, $_GETलेकिन यह 57% 10 प्रदर्शित करता है और मुझे (5-7)% 10 की आवश्यकता है
रोरी मैकपेरलॉय

यह एक कोशिश <? for($i=0,$a=$_GET[n];$i<4;++$i)echo abs($a[$i][0]-$a[$i++][1]%10);:। अफसोस की बात है, यह 65 बाइट लंबा है। ( $iपिछले एक पर वेतन वृद्धि को भूल गए ) या आप 61 बाइट्स लंबे होने <? for($i=0;$i<8;)echo abs($_GET[n][$i++]-$_GET[n][$i++]%10);का उपयोग करके ब्राउज़र का उपयोग करने का प्रयास कर file.php?n[]=x&n[]=y&n[]=x&n[]=y&n[]=x&n[]=y&n[]=x&n[]=yसकते हैं।
इस्माइल मिगुएल

हाँ दूसरे वाले काम करते हैं, $_GET['n']थो करने की जरूरत है । मेरे उत्तर का संपादन किया है।
रोरी मैकपरेलॉय

खैर, यह आवश्यक नहीं है। यह बस एक चेतावनी जारी करता है। इस वेबसाइट के लिए यह ठीक है। लेकिन यह एक कोशिश <? for($i=0,$a=$_GET[n];$i<8;)echo abs($a[$i++]-$a[$i++]);:। %10बेकार है और यह एक बस बेहतर लग रहा है। इसके अलावा, आप इसका उपयोग कर सकते हैं file.php?n[]=xyxyxyxy। यह घोल 58 बाइट्स लंबा है।
इस्माइल मिगुएल

0

अजगर 3, 60

for x in input().split():print(-eval('-'.join(x))%10,end='')

इनपुट और आउटपुट बिल्कुल निर्दिष्ट के रूप में, हालांकि यह एक अनुगामी न्यूलाइन प्रिंट नहीं करता है। दो दिलचस्प चाल यहाँ: 1) दो कॉल की जगहint() एक कॉल को eval(), और 2) join()को प्राप्त करने के लिए उपयोग करना a-b, फिर b-aआवश्यकतानुसार इसे नकारना । सौभाग्य से पायथन का मोडुलो ऑपरेटर सकारात्मक मान देता है, भले ही पहला तर्क नकारात्मक हो!


इसे क्यों ठुकरा दिया गया? यह पूरी तरह से ठीक काम करता है। (Btw, eval('-'.join(x))चाल शानदार है।)
फ़्लॉन्केवेक

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