सभी नंबरों को -100 से 100 तक प्रिंट करें जिसमें दिए गए अंक हों


38

0 और 9 (समावेशी) के बीच एक अंक प्रदान किया गया है, आपके फ़ंक्शन / उप-अंक में -100 और 100 (समावेशी) के बीच सभी संख्याओं को प्रिंट करना चाहिए जिसमें दिए गए अंक शामिल हैं।

उदाहरण के लिए:

Input: 9
Output: -99 -98 -97 -96 -95 -94 -93 -92 -91 -90 -89 -79 -69 -59 -49 -39 -29 -19 -9 9 19 29 39 49 59 69 79 89 90 91 92 93 94 95 96 97 98 99

नियम:

  • आप स्ट्रिंग्स का उपयोग नहीं कर सकते हैं (जिस भी तरीके से उन्हें आपकी चुनी हुई भाषा में दर्शाया गया है) या चार सरणियाँ। (कंसोल के उत्तर को प्रिंट करने के अलावा।)
  • आप सरणियों का उपयोग नहीं कर सकते।

स्कोरिंग:

स्कोर = सबरूटीन / फ़ंक्शन की लंबाई (व्हॉट्सएप की गिनती नहीं की जाएगी)

सबसे कम स्कोर वाला उत्तर जीतता है।

व्हॉट्सएप की गिनती नहीं होगी। कृपया अपने कोड को ठीक से प्रारूपित करें!

कुछ उत्तर नियमित अभिव्यक्तियों का उपयोग कर रहे हैं, जो बिना किसी नियम का उल्लंघन कर सकते हैं, जैसा कि कुछ सदस्यों द्वारा बताया गया है। इन उत्तरों को स्वीकार नहीं किया जाएगा।

कृपया 0पोस्ट करने से पहले अपने कोड का परीक्षण करें ।


2
दिया गया आउटपुट या तो गलत है या अस्पष्ट है। कहां हैं -98 ... -91 और 91 ... 98?
ओबेरॉन

27
एक व्हाट्सएप उत्तर स्कोर होगा 0. क्या आप वाकई ऐसा करना चाहते हैं?
ace_HongKongInd डिपेंडेंस

3
क्या रेगेक्स के उपयोग की अनुमति है? रेगेक्स के साथ काम करने का मतलब है स्ट्रिंग्स के साथ काम करना। इसी तरह सूचियों / संग्रहों (और समान संरचनाओं) के साथ काम करना सरणियों के साथ काम करने के समान है। यहाँ @wallywest के उत्तर regex का उपयोग करता है। यह वह चीज है जो मुझे उन सवालों के बारे में पसंद नहीं है जब वे स्ट्रिंग और / या सरणियों का उपयोग करने से रोकने की कोशिश करते हैं। लोग उन्हें इस्तेमाल करने के वैकल्पिक तरीके ढूंढते हैं। और अगर कोई जवाब वास्तव में सही तरीके से लागू होता है, तो उसे उतने वोट नहीं मिलते जितने कि सिर्फ इसलिए चाहिए क्योंकि यह जटिल दिखता है।
माइक्रोबियन

2
"व्हॉट्सएप की गिनती नहीं की जाएगी। कृपया अपने कोड को ठीक से प्रारूपित करें!" ऐसा करने का एक शानदार तरीका नहीं है, क्योंकि विभिन्न भाषाओं में व्हाट्सएप का अलग महत्व है। अधिक बार, यह सिर्फ "एक अनगुल्ड / पठनीय संस्करण पोस्ट" है।
बॉब

2
@ace मैंने व्हॉट्सएप में एक उत्तर बनाया (इसके साथ 4 घंटे की कड़ी मेहनत की जरूरत है)। मुझे लगता है कि यह स्कोर शून्य है, है ना?
विक्टर स्टैफुसा

जवाबों:


75

व्हॉट्सएप, 834 अक्षर (0 यदि आप व्हाट्सएप को घटाते हैं)

इसका परीक्षण करने के लिए इस दुभाषिए का इस्तेमाल किया।

मुझे बनाने के लिए कुछ 4 घंटे की कड़ी मेहनत और भयानक डिबगिंग का सामना करना पड़ा। पर किया जाता है!

   	    	 
   	    	 
	
	    	    	 
			   		    
	  			    	    		
  			   		
		    	     	
   
		    	    	 
			
	  	  	 		
   	    	 
			   	
	  	
	  	  	 		

   	   	  
   	    		
			 
    		  	  
	  	
	  	   	 	
 
   		
	  

		 	   			
  		
	  

   	   			
 
    	    	 
			
	  	  	   
   	 	 
	 	    	    	 
				  	
	  	  	  	

   	  	   
   	 	 
	 		   	    	 
				  	
	  	  	  	

 
 	  	 	 

   	  	  	
   	     	
			
	  	   		 
   	     
	
  
   	   		 
   	     	
   	
		    	    		
				
 	
   	  	 	 
   	    		
   	    		
			   	
	   		 
 
 	   	  

   	   	 	
   	    	 
			
	  	  		  
   	    	 
			   	
	  	
	  	  		  




   	  	 		
  			  	  
	
 	   	     
	
  
 
 	   	  

   	  		  
   	     
	
     		  	  
	
 	


संपादित करें : एचटीएमएल ट्रिक्स के साथ उपलब्ध चयन पाठ। यदि आप इसे किसी दूसरी जगह से कॉपी और पेस्ट करते हैं, तो कृपया जांचें कि क्या आपको [space][tab][linefeed][linefeed][linefeed]100 या 101 लाइनों के साथ अंत में मिला है (यदि आपका संपादक एक पंक्ति के साथ अंतिम पंक्ति समाप्त होता है या नहीं तो नई पंक्ति के आधार पर)।

इस मामले में कि आप इसे इस तरह से उपयोग नहीं कर सकते हैं, अंतरिक्ष के रूप में S, के रूप में Lऔर के रूप में टैब को खिलाने T, और L'एस, यहाँ है के बाद लाइनों को तोड़ने :

SSSTSSSSTSL
SSSTSSSSTSL
TL
TSSSSTSSSSTSL
TTTSSSTTSSSSL
TSSTTTSSSSTSSSSTTL
SSTTTSSSTTL
TTSSSSTSSSSSTL
SSSL
TTSSSSTSSSSTSL
TTTL
TSSTSSTSTTL
SSSTSSSSTSL
TTTSSSTL
TSSTL
TSSTSSTSTTL
L
SSSTSSSTSSL
SSSTSSSSTTL
TTTSL
SSSSTTSSTSSL
TSSTL
TSSTSSSTSTL
SL
SSSTTL
TSSL
L
TTSTSSSTTTL
SSTTL
TSSL
L
SSSTSSSTTTL
SL
SSSSTSSSSTSL
TTTL
TSSTSSTSSSL
SSSTSTSL
TSTSSSSTSSSSTSL
TTTTSSTL
TSSTSSTSSTL
L
SSSTSSTSSSL
SSSTSTSL
TSTTSSSTSSSSTSL
TTTTSSTL
TSSTSSTSSTL
L
SL
STSSTSTSL
L
SSSTSSTSSTL
SSSTSSSSSTL
TTTL
TSSTSSSTTSL
SSSTSSSSSL
TL
SSL
SSSTSSSTTSL
SSSTSSSSSTL
SSSTL
TTSSSSTSSSSTTL
TTTTL
STL
SSSTSSTSTSL
SSSTSSSSTTL
SSSTSSSSTTL
TTTSSSTL
TSSSTTSL
SL
STSSSTSSL
L
SSSTSSSTSTL
SSSTSSSSTSL
TTTL
TSSTSSTTSSL
SSSTSSSSTSL
TTTSSSTL
TSSTL
TSSTSSTTSSL
L
L
L
L
SSSTSSTSTTL
SSTTTSSTSSL
TL
STSSSTSSSSSL
TL
SSL
SL
STSSSTSSL
L
SSSTSSTTSSL
SSSTSSSSSL
TL
SSSSSTTSSTSSL
TL
STL
L
L

32
+1 शोषण "0 यदि आप
व्हाट्सएप को घटाते हैं

12
हाहा, मैंने एक सबक सीखा। : P
duci9y

2
@ क्रंचर भाषा अच्छी तरह से परिभाषित और पूरी तरह से अस्पष्ट है । आपके विशेष प्रश्न के लिए: एक संख्या रिक्त स्थान और टैब की एक श्रृंखला है, जो बाइनरी (स्पेस = 0, टैब = 1, बिग-एंडियन बाइनरी प्रारूप) में संख्या का प्रतिनिधित्व करती है और एक नई रेखा द्वारा समाप्त की जाती है। इसलिए आप एक संख्या को जानते हैं जब आप एक नई रेखा पर पहुंचते हैं।
टिम एस।

1
मैंने आज व्हॉट्सएप सीखा। codegolf.stackexchange.com/a/23216/17886
duci9y

7
मैं व्याख्या करता हूं "व्हॉट्सएप की गिनती नहीं की जाएगी।" इसका मतलब यह है कि यह उत्तर अमान्य है। ;) +1
टिम सेगिन

24

बाश + बर्तन - 20

seq -100 100|grep 9

या अगर एक स्क्रिप्ट में 21 बाइट्स

seq -100 100|grep $1

स्क्रिप्ट चलाने के लिए:

sh myscript 9

4
grepहै bashया नहीं sh। यह एक और उपयोगिता है!
देवनुल

मुझे सहमत होना है, यह शुद्ध शेल / बैश नहीं है :)
निक ओ ललाई

1
प्रश्न देखता है। मन में उत्तर देता है। पहले से ही पोस्ट किया गया सटीक उत्तर देता है। अरे! +1
द गॉट विथ द हैट

6
मुझे लगता है कि यह तार का उपयोग कर रहा है।
डेविड कॉनराड

1
@DavidConrad यदि आप इसे इस तरह से देखते हैं, तो सब कुछ तार का उपयोग करता है। कार्यक्रम स्रोत एक स्ट्रिंग है। टर्मिनल स्ट्रिंग्स का उपयोग करता है। आदि
कर्नल थर्टी टू

9

जावास्क्रिप्ट 133 - 1 = 132

निश्चित रूप से अब इस संस्करण के साथ कुछ भी गलत नहीं हो सकता है ...?

for(k=prompt(),c=console,j=-100;100>=j;j++)if(i=j,0==j&j==k)c.log(0);else for(;i;)if(h=i%10,h=0>h?-h:h,i=i/10|0,h==k){c.log(j);break}

PROMPT: 2
CONSOLE.LOG:
-92
-82
-72
-62
-52
-42
-32
-29
-28
-27
-26
-25
-24
-23
-22
-21
-20
-12
-2
 2
 12
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 32
 42
 52
 62
 72
 82
 92

CONTROL, using zero
PROMPT: 0
CONSOLE.LOG:
    -100
    -90
    -80
    -70
    -60
    -50
    -40
    -30
    -20
    -10
      0
     10
     20
     30
     40
     50
     60
     70
     80
     90
    100

1
थोड़ा छोटा भी for(i=-100,r=prompt();101>i;i++)(i+'').match(r)&&console.log(i):।
VisioN

2
मुझे यह उत्तर (+1) पसंद है, लेकिन क्या यह स्पष्ट रूप से तार का उपयोग नहीं करता है?
नहीं कि चार्ल्स

2
यह अंतर्निहित स्ट्रिंग रूपांतरण का उपयोग करता है
क्लाउडियो

1
वास्तव में, नहीं, यह नहीं है ... alert(RegExp(9).test(99))जो केवल संख्याओं पर आधारित है, trueजावास्क्रिप्ट की शिथिल आधारित टाइपिंग प्रणाली के कारण भी लौटता है। फ़ंक्शन संख्याओं के साथ काम करते हैं जैसे कि वे तार हैं लेकिन फिर भी संख्याएँ हैं ... यदि आप कोड को पढ़ने r=RegExp(x=+prompt());for(i=-100;101>i;i++)r.test(i)&&console.log(i);console.log(typeof(x));console.log(typeof(i))और निष्पादित करने के लिए बदलते हैं , तो अंतिम टाइपऑफ़ प्रतिक्रिया दिखाएगा xऔर iसंख्या के रूप में ... Ergo, मैं स्ट्रिंग का उपयोग नहीं कर रहा हूं ...
20

2
@VoronoiPotato प्रिंटिंग भी एक स्ट्रिंग ऑप है। लेकिन हम स्पष्ट रूप से ऐसा करने के लिए आवश्यक हैं।
टिम सेग्यूइन

8

गोल्फस्क्रिप्ट [24 बाइट्स]

`:x;201,{100-}%{`x?-1>},

विवरण:

`:x;             - save input value to variable 'x' and remove from the stack
201,{100-}%      - create range from -100 to 100
{`x?-1>},        - filter the range by "index-of" condition

डेमो: http://golfscript.apphb.com/?c=MwoKYDp4OzIwMSx7MTAwLX0le2B4Py0xPn0sYA%3D%3D


इस तार का उपयोग करता है, हालांकि
Claudiu

यह सरणियों का भी उपयोग करता है: 201, 0 से 200 तक एक सरणी बनाता है।
रीस

6

रूबी: 92 अक्षर

s=gets.to_i
$><<(-100..100).select{|n|a=n.abs;loop{break""if a%10==s;break if 0==a/=10}}*" "

पठनीय संस्करण:

searchfor = gets.to_i
$><< (-100..100).select { |number|
  absnumber = number.abs
  loop {
    break "" if absnumber % 10 ==s
    break if 0 == absnumber /= 10
  }
} * " "

नमूना रन:

bash-4.2$ ruby -e 's=gets.to_i;$><<(-100..100).select{|n|a=n.abs;loop{break""if a%10==s;break if 0==a/=10}}*" "' <<< 9
-99 -98 -97 -96 -95 -94 -93 -92 -91 -90 -89 -79 -69 -59 -49 -39 -29 -19 -9 9 19 29 39 49 59 69 79 89 90 91 92 93 94 95 96 97 98 99

परीक्षण चालन:

bash-4.2$ for i in {0..9}; do diff -w <(ruby -e 's=gets.to_i;$><<(-100..100).select{|n|a=n.abs;loop{break""if a%10==s;break if 0==a/=10}}*" "' <<< $i) <(seq -100 100|grep $i|tr \\n \ ) > /dev/null; echo "$i : $?"; done
0 : 0
1 : 0
2 : 0
3 : 0
4 : 0
5 : 0
6 : 0
7 : 0
8 : 0
9 : 0

0परीक्षण में विफल रहता है ।
duci9y

उफ़। आप सही हैं, @ duci9y सही किया।
मैनटवर्क

6

K - 45 चार

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

{|a@&x _in'@[10_vs'_ _abs a:100-!201;100;0,]}

व्याख्या की:

  • a:100-!201- 0 से 200 समावेशी सूची बनाएं, फिर इसे 100 से घटाएं। अब हमारे पास संख्या -100 से 100 समावेशी है, लेकिन प्रश्न के चश्मे से पीछे की ओर। हम हमेशा बाद में इसे ठीक कर सकते हैं, इसलिए अभी के लिए हम इसे असाइन करेंगे a
  • _ _abs- इन संख्याओं के निरपेक्ष मान का तल लें, क्योंकि K जो भी कारण सोचता है _absउसे फ्लोटिंग पॉइंट परिणाम देना चाहिए। शुक्र है, उन्हें फ़्लोर करना उन्हें पूर्णांक में बदल देता है।
  • 10_vs'- 'आधार 10 नंबर के रूप में प्रत्येक ( ) पूर्णांक का विस्तार करें ( _vs"स्केलर से वेक्टर के लिए खड़ा है")। ध्यान दें कि हमें प्रत्येक ऑपरेटर 'को उपरोक्त कार्यों पर उपयोग नहीं करना था क्योंकि वे परमाणुओं पर काम करते हैं।
  • @[...;100;0,]- इंडेक्स 100 पर हमारी सूची में आइटम को संशोधित करें (एक खाली सूची, जो कि फ़ंक्शन द्वारा 0 को आधार 10 में विस्तारित करने का परिणाम है) 0,, जो सामने एक शून्य को प्रस्तुत करता है। इस सुधार के बिना, यह फ़ंक्शन इनपुट 0 पर विफल हो जाएगा।
  • &x in'- अब, विस्तार से हम ( ) का एक अंक &जहां x( _in) प्रत्येक ( ') का विस्तार करते हैं, जिसे हमने ऊपर ध्यान से बनाया है।
  • |a@- अंत में, इन सूचकांकों को अनुक्रमित करने के लिए उपयोग करें a, और सूची को सही क्रम में उलट दें।

उपयोग स्पष्ट है, हालांकि सौभाग्य एक कश्मीर दुभाषिया पर अपने हाथ हो रही है। ( जीथुब पर एक खुला स्रोत कार्यान्वयन है जिसे आप संकलित कर सकते हैं।)

  {|a@&x _in'@[10_vs'_ _abs a:100-!201;100;0,]} 0
-100 -90 -80 -70 -60 -50 -40 -30 -20 -10 0 10 20 30 40 50 60 70 80 90 100
  {|a@&x _in'@[10_vs'_ _abs a:100-!201;100;0,]} 5
-95 -85 -75 -65 -59 -58 -57 -56 -55 -54 -53 -52 -51 -50 -45 -35 -25 -15 -5 5 15 25 35 45 50 51 52 53 54 55 56 57 58 59 65 75 85 95

मुझे आश्चर्य है कि अगर इस तरह के परिदृश्यों के बाहर K जैसी भाषाओं का कोई उत्पादक उपयोग होता है। क्या वे?
डुसि

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

एक दम बढ़िया! मेरा मानना ​​था कि गूढ़ भाषाएं केवल मनोरंजन के लिए हैं। यह देखकर अच्छा लगा कि ऐसा नहीं है।
duci9y

क्या वर्णन यह नहीं कहता है कि "आप सरणियों का उपयोग नहीं कर सकते हैं"?
उमर

6

दे घुमा के 55 49 अक्षर:

(आसपास व्हॉट्सएप की गिनती नहीं &&)

for i in {-100..100}
do
  [[ $i =~ $1 ]] && echo $i
done

यह कहकर निष्पादित करना:

bash filename 9

उत्पादन होगा:

-99
-98
-97
-96
-95
-94
-93
-92
-91
-90
-89
-79
-69
-59
-49
-39
-29
-19
-9
9
19
29
39
49
59
69
79
89
90
91
92
93
94
95
96
97
98
99

आप दो अतिरिक्त बिंदुओं के लिए "&&" को "&&" से बदल सकते हैं। इसके अलावा अगर मैं अनुगामी न्यूलाइन छोड़ता हूं तो एक कम चार गिनती करता हूं।
डिजिटल ट्रामा

1
स्क्रैच कि - मैंने अभी नया नियम देखा: "EDIT: व्हॉट्सएप की गिनती नहीं की जाएगी। कृपया अपना कोड ठीक से प्रारूपित करें!" । इसलिए मुझे लगता है कि आपको सभी गैर-व्हाट्सएप पात्रों को गिनना होगा?
डिजिटल ट्रामा

तब आप ;एस को न्यूलाइन में बदल सकते हैं , और 2 अंक बचा सकते हैं।
joeytwiddle

4

PHP 67 बाइट्स:

for($i=-100;$i<101;++$i)if(strpos($i,$_GET[n])!==!1)echo$i,PHP_EOL;

हां, एक 'स्ट्रैप' कॉल है, लेकिन मैं केवल नंबरों का उपयोग कर रहा हूं!

यहाँ एक 'ungolfed' संस्करण है:

for($i=-100;$i<101;++$i)
{
    if(strpos($i,$_GET[n])!==false)
    {
        echo $i,PHP_EOL;
    }
}

इस काम के लिए, आप इसे यहाँ देख सकते हैं: http://writecodeonline.com/php/

बस $_GET[n]='<number>';कोड की शुरुआत में जोड़ना याद रखें ।

या, एक दीपक या xampp सर्वर पर, आप एक पेज बना सकते हैं और फिर ?n=<number>फ़ाइल नाम के पैरामीटर के साथ इसे ब्राउज़र पर एक्सेस कर सकते हैं ।


1
यह अंतर्निहित स्ट्रिंग रूपांतरण की तरह दिखता है, जो बिना तार के नियम का उल्लंघन करता है।
वोरोनोई पोपटो

मेरी गलती नहीं। मैंने भाषा नहीं बनाई। मेरे पास जो है उसका मैंने इस्तेमाल किया। इसके अलावा, रूपांतरण आंतरिक रूप से किया जाता है। कोड में स्ट्रिंग्स (आउटपुट को छोड़कर) से निपटने के लिए कुछ भी नहीं है।
इस्माइल मिगुएल

जिस तरह से मैं नियम पढ़ता हूं, आपको अंकगणित को अंकगणित से निपटना होगा। उन्हें अपने साथ या भाषा या पुस्तकालय द्वारा तार के रूप में मानना, सीमा से बाहर है। लेकिन लगभग हर कोई एक समान तरीके से नियम का पालन कर रहा है।
डेविड कॉनरेड

खैर, हर कोई इसे सबसे छोटे तरीके से करना चाहता है। और सबसे छोटी संख्या को स्ट्रिंग्स के रूप में माना जाता है (आंतरिक रूप से कोड में स्ट्रिंग के लिए अंतर्निहित रूपांतरण के बिना)।
इस्माइल मिगुएल

4

गणितज्ञ २ 28

क्षमा करें, मैं अभी विरोध नहीं कर सका।

:)

निर्देश हैं: "0 और 9 (समावेशी) के बीच एक अंक प्रदान किया गया है, आपके फ़ंक्शन / उप-अंक को -100 और 100 (समावेशी) के बीच सभी संख्याओं को प्रिंट करना चाहिए, जिसमें दिए गए अंक शामिल हैं।"


निम्नलिखित ऐसे सभी नंबरों को प्रिंट करता है।

f@n_ :=Print/@Range[-100,100]

एक विशेष बोनस के रूप में, यह उन संख्याओं को उसी सीमा में प्रिंट करता है जिसमें दिए गए अंक नहीं होते हैं। :)


लेकिन यह एक फिल्टर के रूप में n का उपयोग नहीं करता है
मूर्ति

@ मर्ता, हां, मैंने पहेली के इरादे को उलट दिया (यही वजह है कि मैंने "सॉरी" कहा), जबकि तकनीकी रूप से एक उचित उत्तर प्रदान कर रहा हूं।
डेविड मार्क

4

यहां मेरा पहला प्रयास, इसलिए शायद मैं कुछ चीजें गलत कर रहा हूं, कृपया इसे माफ करें;)
इसलिए, मुझे यकीन नहीं था कि मुझे पूरी कक्षा या केवल तर्क को जोड़ना होगा।

जावा - 199 वर्ण

intx=System.in.read()-48;for(inti=-100;i<101;i++){if((i<10&&i==-x)||(i>-10&&i==x)||(i<-9&&((i/100==x&&i<-99)||i%10==-x||i/10==-x))||(i>9&&((i/100==x&&i>99)||i%10==x||i/10==x)))System.out.println(i);}

यहाँ एक और पठनीय रूप है:

int x = System.in.read() - 48;
for(int i = -100; i < 101; i++) {

    if((i < 10 && i == -x) || (i > -10 && i == x)
        || (i < -9 && ((i / 100 == x && i < -99 ) || i % 10 == -x || i / 10 == -x))
        || (i > 9 && ((i / 100 == x && i > 99) || i % 10 == x || i / 10 == x)))

        System.out.println(i);

}

मुझे लगता है कि मूल विचार इतना बुरा नहीं था, लेकिन बहुत अधिक अपवादों की जरूरत थी, आखिरकार सभी मामलों के लिए बाहर काम करने के लिए ...: /


क्षमा करें, साथ काम नहीं करता है 0:(
duci9y

अजी, यकीन है, पिछले इसके अलावा मैंने गड़बड़ कर दी है। अपडेट किया गया कोड, इसलिए मैं अब 199 पर आ गया हूं। यह बात बताने के लिए धन्यवाद!
जोचेन रिंस्चुलेसल

यह महसूस नहीं किया कि एक: डी बहुत अधिक मूल भाषा में पिछले दिनों में कोडिंग मुझे लगता है?)
जोहान Reinschlüssel

आपने अपने संकुचित संस्करण में हर एक स्थान को हटा दिया ... क्या इससे कोई त्रुटि नहीं होगी? उदाहरण: आपका पहला 4 अक्षर: intx... ऐसा नहीं होना चाहिए int x:?
SirPython

4

सी - 104 107 114 वर्ण - 0 = 104 107 114

a,b;main(i){i=getchar()-48;for(a=-100;a<101;a++){for(b=a;a&&abs(a%10)!=i;a/=10);if(a|!i&!b)printf("%i ",b);a=b;}}

Ungolfed:

#include <stdio.h>

int a, b;

int main(int i) {
    i = getchar() - '0';
    for( a = -100 ; a < 101 ; a++ ) {
        for( b = a ; a && abs(a % 10) != i ; a /= 10 );
        if( a | !i & !b )
            printf("%i ", b);
        a = b;
    }
}

अच्छा लगा। क्या आप कृपया उचित व्हाट्सएप के साथ एक अनगुल्ड संस्करण भी पोस्ट कर सकते हैं?
duci9y

@ duci9y ने इसे जोड़ा।
ओबेरॉन

क्या यह आउटपुट आउट ऑफ़ ऑर्डर नहीं होगा? (युक्ति को यह
बताने के

@ गफ्फी तो खैर। मैं कोड संपादित करूंगा।
ओबेरॉन

4
सूचना है कि करने में विफल रहता 0शामिल 0
ugoren

3

आर 87 93

यहाँ एक सुधार है:

a=scan();r=-100:100;s=abs(r);r[(!a&!r%%10)|a&(a==s%%10|a==floor(s/10)|a==floor(s/100))]

(संभावित रूप से) अधिक पठनीय, नोट्स के साथ:

a=scan() # take user input of selected digit
r=-100:100 # define our scanning range
s=abs(r) # copy the range as the absolute value for proper floor() calculation
#r[<criteria>] is functionally the same as subset(r,<criteria>)
r[ # when any of the criteria below are met, use that value from the range
    (!a & !r%%10) # case when input is 0, !a is evaluated as "a when a<>0 == true"
    | a & # all other digits below
    a==s%%10
    |
    a==floor(s/10)
    |
    a==floor(s/100)
    ] # R does not require a print command, so this as-is will display the corresponding values

व्हाट्सएप क्यों नहीं?
duci9y

@ duci9y क्योंकि कोई भी आवश्यक नहीं है। मैं और अधिक पठनीय होने के लिए प्रारूपित करूँगा और साथ ही, अच्छे उपाय के लिए भी जोड़ूँगा।
गफ्फी

साथ काम नहीं करता है 0
द्विवार्षिक

@ duci9y यह विफल नहीं होता है। मैंने मूल पोस्ट (+2 वर्ण) से एक छोटा परिवर्तन किया, क्योंकि मूल पोस्ट DID पर विफल है 0। क्या आपने इस सबसे हाल के संस्करण के साथ प्रयास किया? मैं R 3.0.1 का उपयोग कर रहा हूं।
गफ्फी

@ duci9y स्पष्ट होने के लिए, मेरा मतलब है कि आपने इसका उपयोग मेरे कोड के सबसे हाल के संस्करण पर किया है । मेरे आर का संस्करण सबसे हाल के संस्करण के करीब होना चाहिए, इससे कोई फर्क नहीं पड़ता। हालांकि, मैंने किसी भी 2. * संस्करणों पर परीक्षण नहीं किया।
गफ्फी

3

प्रस्तावना: 75

f(D) :-
  between(-100,100,N) ,
  number_chars(N,Ds) ,
  member(D,Ds) ,
  writeln(N) ,
  fail
  .

आप इसे कैसे कहते हैं? मैंने इसे एक test.plफ़ाइल में सहेजा , शुरू किया swipl, दर्ज किया consult('test')और फिर दर्ज किया f(9)। लेकिन यह केवल लौटा false
मार्टिन थोमा

3

C 98 वर्णों में उत्तर

यह उन सबसे सेक्सी चीज़ों में से एक है जिन्हें मैंने कभी कोड किया है

main()
{
    int t=getchar()-48,i=100,j=-i;
    while ((i=t-i%10?i/10:!printf("%d\n",j)) || (i=++j<0?-j:j)<101  );
}

104 नॉन-व्हॉट्सएप चार्ट के साथ पुराना संस्करण:

int main()
{
    int t=getchar()-48,i,j=-101;
    while(++j<101)
    {
        i=j<0?-j:j;
        while(i = t-i%10?i/10:!printf("%d\n",j));
    }
}

GCC और CLANG का उपयोग करके "मेरे लिए काम करता है"।


बहुत बढ़िया! कोड गोल्फ में आपका स्वागत है।
15

2

GNU कोरुटिल्स (44)

read N
seq -100 100 | grep $N | tr '\n' ' '
echo

जहाँ नए trस्थानों को रिक्त स्थान में परिवर्तित करने के लिए उपयोग किया जाता है, और echoएक अंतिम न्यूलाइन प्रदान करता है।

$ bash ./script
9
-99 -98 -97 -96 -95 -94 -93 -92 -91 -90 -89 -79 -69 -59 -49 -39 -29 -19 -9 9 19 29 39 49 59 69 79 89 90 91 92 93 94 95 96 97 98 99

यह मौजूदा उत्तर से बहुत अलग नहीं है ।
देवनुल

2

जावास्क्रिप्ट 116

   a = 0
        for(i=-100;101>i;i++){
        m=Math
        f=m.floor
        j = m.abs(i)
        if((j>10&&f(j/10)==a)||j-f(j/10)*10==a||j/100==a){

             console.log(i)

        }
        }

2

जे - 27 वर्ण

सभी व्हाट्सएप सुरक्षित रूप से हटाने योग्य है, जिसका अर्थ है 27 वर्ण। आउटपुट में ऋणात्मक संख्याओं के _लिए ऋणात्मक चिन्ह होगा: यह उसी तरह है जैसे J अपने नकारात्मक संख्याओं को लिखता है।

((e. 10 #.^:_1 |)"0 # ]) & (i: 100)

व्याख्या की:

  • V & (i: 100)- Bind ( &) -100 से 100 समावेशी ( i:100) मुख्य क्रिया के सही तर्क के रूप में संख्याओं का सेट ( V)। संपूर्ण क्रिया का एकल तर्क बाईं ओर पाइप हो जाता है।
  • (U"0 # ])- Uसही तर्क ( "0) #से सही तर्क से आइटम ( ) का चयन करने के लिए प्रत्येक नंबर पर क्रिया के परिणाम का उपयोग करें ]
  • (e. 10 #.^:_1 |)- बाएं तर्क के रूप में परीक्षण करने के लिए अंक और सही तर्क के रूप में जांचने के लिए अंक को देखते हुए, बेस 10 ( 10 #.^:_1) संख्या का निरपेक्ष मान ( ) में विस्तार |करें, और जांचें कि क्या अंक उस विस्तार का एक तत्व है ( e.)।

उपयोग:

   ((e. 10 #.^:_1 |)"0 # ]) & (i: 100) 0
_100 _90 _80 _70 _60 _50 _40 _30 _20 _10 0 10 20 30 40 50 60 70 80 90 100
   ((e. 10 #.^:_1 |)"0 # ]) & (i: 100) 5
_95 _85 _75 _65 _59 _58 _57 _56 _55 _54 _53 _52 _51 _50 _45 _35 _25 _15 _5 5 15 25 35 45 50 51 52 53 54 55 56 57 58 59 65 75 85 95

J में अंडरस्कोर-फॉर-नेगेटिव कन्वेंशन ने मुझे हमेशा परेशान किया - अगर यह आउटपुट में एक मामूली सिंबल का इस्तेमाल करता है तो यह इतना बुरा नहीं होगा (बिना फॉर्मेट वर्ब के साथ गड़बड़ किए)।
डेस्टी

अंडरस्कोर जम्मू के असंदिग्ध है (और, मैं तर्क, सुरुचिपूर्ण और एपीएलआईएस) को नकारात्मक नेगेट -/ माइनस से नकारात्मक संकेतों को अलग करने का तरीका होगा । K आपको संख्याओं में "स्वाभाविक रूप से" नकारात्मक संकेत का उपयोग करने देता है, और संयोग से K एक आर्कन सिंटेक्टिक क्लस्टरफ़क से बाहर आया। यदि यह वास्तव में आपको विचलित कर रहा है, तो अपनी पसंद के अनुसार ;8!:1, '4.0'8!:2या '-'I.@:=&'_'}":, 7, 11, और 16 वर्णों की लागत से काम करें , परिणामी कार्यक्रम को एक अभिव्यक्ति के बजाय एक फ़ंक्शन बनाने के लिए, मेरी गिनती से।
एल्गोरिदम

मुझे पता है कि यह क्या है, लेकिन जब यह I / O की बात आती है तो यह थोड़ा परेशान करता है। यदि यह किसी संख्या में परिणामी स्ट्रिंग को खाली करना चाहता था, तो मुद्रण संख्या को छापने के बजाय, यह डिफ़ॉल्ट रूप से माइनस संकेत उत्पन्न करता है, तो यह अच्छा होगा।
डेस्टी

2

ग्रूवी, 127

def x = args[0].toInteger()
for (k in -100..100)
    if (k == x)
        print " ${k}"
    else
        for (n = Math.abs(k); n > 0; n = (int) n / 10)
            if (n % 10 == x) {
                print " ${k}"
                break
            }

कोई तार नहीं (संख्याओं के बीच रिक्त स्थान को आउटपुट करने के लिए), कोई चार्ट या अन्य सरणियों, कोई regexes नहीं। 0. आउटपुट के साथ परीक्षण किया गया:

-100 -90 -80 -70 -60 -50 -40 -30 -20 -10 0 10 20 30 40 50 60 70 80 90


1
और मैंने आज एक नई भाषा की खोज की। :)
duci9y

2

जावास्क्रिप्ट - 108

निश्चित नहीं है कि मौजूदा जावास्क्रिप्ट उत्तर पर ध्यान दिया जाएगा क्योंकि यह रेगेक्स का उपयोग करता है, इसलिए मैंने इसके बिना एक बनाया:

for(x=+prompt(i=-100);i<101;i++)if((j=i<0?-i:i)&&j%10==x||((j/100==x||(0|j/10)==x)&&x)||j==x)console.log(i)

यदि x चर को सीधे रखा जाए तो 101 को छोटा किया जा सकता है, जैसे:

for(x=5,i=-100;i<101;i++)if((j=i<0?-i:i)&&j%10==x||((j/100==x||(0|j/10)==x)&&x)||j==x)console.log(i)

यह मूल रूप से जांचता है कि डिव या मॉड संचालन के पूर्ण मूल्य अंक के बराबर हैं (जो 100 के लिए भी काम करता है)।


यदि x=1, यह प्रिंट करने में विफल रहता है -100या 100
डॉकमैक्स

अब तय किया जाना चाहिए
दामिर कासिपोविक

1अच्छी तरह से काम करता है, लेकिन अब 0प्रिंट 1, 2, 3... क्षमा एक उपद्रवी यहाँ होने के लिए।
डॉकमैक्स

ठीक है अगर आप x = 0 डालते हैं; यह ठीक काम करता है, समस्या यह थी कि prompt()रिटर्न स्ट्रिंग, इसलिए मैंने * 1 जोड़ा और यह उम्मीद है कि अब ठीक होना चाहिए। आपके सुझावों के लिए धन्यवाद
दामिर कासिपोविक

1
parseInt(j/10)प्रतिस्थापित किया जा सकता है (0|j/10)जिसके साथ दोनों छोटे हैं और अंतर्निहित तारों से बचा जाता है। (अपरिहार्य) स्ट्रिंग-टू-नंबर रूपांतरण को prompt()*1छोटा नहीं किया जा सकता है +prompt()। (या अभी भी कम, शुरू करने के लिए फ़ंक्शन बदलें for(x=+prompt(i=-100);...
DocMax

2

जीडब्ल्यू बेसिक: व्हॉट्सएप को छोड़कर 107 अक्षर

1 input n
2 for i=-100 to 100
3 j=abs(i):a=j mod 10
4 if a=n then 8
5 b=j\10
6 if (b=n) and b then 8
7 if (b<10) or n<>1 then 9
8 print i
9 next

लाइन नंबरों के लिए एकल अंकों का उपयोग करना और व्हाट्सएप को अलग करने का मतलब है कि संख्याओं को 10 तक पहुंचने के लिए एक से अधिक बार लाइन पर एक से अधिक स्टेटमेंट रखने की आवश्यकता नहीं है।


2

सकल, 71१

f={z->
  _=10
  (-_*_.._*_).grep {
    a=it.abs()
    b=a%_==z
    a<_?b:b||(int)(a/_)%_==z
  }
}

println f(0)
println f(9)

का परिणाम

[-100, -90, -80, -70, -60, -50, -40, -30, -20, -10, 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
[-99, -98, -97, -96, -95, -94, -93, -92, -91, -90, -89, -79, -69, -59, -49, -39, -29, -19, -9, 9, 19, 29, 39, 49, 59, 69, 79, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]

2

जावास्क्रिप्ट 96

बिटवाइज़ या: का उपयोग करना

b=Math.abs;
a=prompt();
for(i=-100;i<101;)
    if(!(b(i++/10)^a && b(i%10)^a)||b(i)/a==100)  console.log(i)

2

हास्केल, 86 75 (आवश्यक व्हाट्सएप के साथ 78)

f 0=[-100,-90..100]
f d=[b|b<-[-100..100],abs(b`quot`10)==d||abs(b`rem`10)==d]

Ungolfed:

f dig =
  if dig == 0
    then [-100, 90 .. 100]
    else [num | num <- [-100 .. 100], abs (num `quot` 10) == d || abs (num `rem` 10) == d]

आप पैटर्न मिलान के साथ एक दो लाइन परिभाषा का उपयोग करते हैं, यानी a 0=[-100....और a d=[b|b<-....आप से छुटकारा मिल सकता है if then elseऔर कुछ बाइट्स बचाने।
निम

1

पायथन - 172 वर्ण

def f(x,y,z):
    if x%10==y or (x>9 and x/10==y) or (x==100 and y==1):
        print z
def g(x,y):
    f(abs(x),y,x)
    if x<100:
        g(x+1,y)
def h(y):
    g(-100,y)

अजगर के भीतर परीक्षण करने के लिए:

>>> h(4)
-94
-84
-74
...
-49
-48
...

1

VBA 121

(कोई व्हॉट्सएप या Subपरिभाषा नहीं ):

Sub t(d)
For n = -100 To 100
m = Abs(n)
o = o & IIf(d = 0, IIf(d = n Mod 10, " " & n, ""), IIf(d = n Or d = m Mod 10 Or d = Int(m / 10) Or d = Int(m / 100), " " & n, ""))
Next
MsgBox o
End Sub

क्या यह साथ काम करता है 0?
duci9y

@ duci9y हां। विशेष रूप से क्योंकि:IIf(d = 0, IIf(d = n Mod 10, " " & n, "")
गफ्फी

1

पर्ल, 117 गैर-सार्थक व्हाट्सएप चार्ट के साथ हटा दिया गया

मुझे लगता है कि आप इस तरह से कुछ और तलाश रहे थे। स्टड से पढ़ता है, प्रति मैच एक पंक्ति आउटपुट करता है। कोई regexps, arrays (या सेट या हैश या कुछ और जो कवर के नीचे एक सरणी है) या तार, अंतर्निहित या अन्यथा, स्ट्रिंग को प्रिंट करने के लिए छोड़कर:

chomp($x=<>); for($y=-100;$y<101;++$y) { $a=abs $y; print "$y " if $a % 10 == $x || $a > 9 && int( $a/10 ) == $x || $a==100 && $x==1}; print "\n"

उदाहरण के लिए:

ski@anito:~$ echo 0 | perl -e 'chomp($x=<>); for($y=-100;$y<101;++$y) { $a=abs $y; print "$y " if $a % 10 == $x || $a > 9 && int( $a/10 ) == $x || $a==100 && $x==1}; print "\n"'
-100 -90 -80 -70 -60 -50 -40 -30 -20 -10 0 10 20 30 40 50 60 70 80 90 100 

ski@anito:~$ echo 1 | perl -e 'chomp($x=<>); for($y=-100;$y<101;++$y) { $a=abs $y; print "$y " if $a % 10 == $x || $a > 9 && int( $a/10 ) == $x || $a==100 && $x==1}; print "\n"'
-100 -91 -81 -71 -61 -51 -41 -31 -21 -19 -18 -17 -16 -15 -14 -13 -12 -11 -10 -1 1 10 11 12 13 14 15 16 17 18 19 21 31 41 51 61 71 81 91 100 

ski@anito:~$ echo 2 | perl -e 'chomp($x=<>); for($y=-100;$y<101;++$y) { $a=abs $y; print "$y " if $a % 10 == $x || $a > 9 && int( $a/10 ) == $x || $a==100 && $x==1}; print "\n"'
-92 -82 -72 -62 -52 -42 -32 -29 -28 -27 -26 -25 -24 -23 -22 -21 -20 -12 -2 2 12 20 21 22 23 24 25 26 27 28 29 32 42 52 62 72 82 92 

1

एफ # 87 92 - 7

let f n = {-100..100}
|>Seq.filter(fun x->abs x%10=n||abs x/10=n&&n>0)
|>Seq.iter(printf"%d ")

5 वर्ण जोड़े क्योंकि 0 को सही तरीके से नहीं संभाला गया था। (एकल अंक मान सभी वापस कर दिए जाएंगे।)


1

कोड गोल्फ खेलने का यह मेरा पहला मौका है। यह काफी दिलचस्प लग रहा है। मैं जीत नहीं सकता, लेकिन मैंने कोशिश की और दिखाना चाहता था कि मैं क्या कर सकता हूं।

पायथन: 104 (89 अगर मैं आयात को कम कर सकता हूं) - यदि परिणाम बिल्कुल मुद्रित किया जाना चाहिए जैसा कि उदाहरण में दिखाया गया है

from math import *

def g(x):
    t = 10
    p = lambda i: x == i % t or i >= t and p(i / t)
    for i in range(-100, 101):
        if p(abs(i)):
            print i,
    print
# g(0)
# -100 -90 -80 -70 -60 -50 -40 -30 -20 -10 0 10 20 30 40 50 60 70 80 90 100

पायथन: 71 - यदि आउटपुट फ़ंक्शन के बाहर किया जा सकता है और आउटपुट के लिए एकमात्र प्रतिबंध यह है कि कोई भी उल्लंघन संख्या मुद्रित नहीं है

f = lambda x: [(-i, i) for i in range(101) for j in (10, 100) if i % j == x or i >= j and i / j == x]
# print f(0)
# [(0, 0), (0, 0), (-10, 10), (-20, 20), (-30, 30), (-40, 40), (-50, 50), (-60, 60), (-70, 70), (-80, 80), (-90, 90), (-100, 100), (-100, 100)]

1

जावास्क्रिप्ट 125 चार

कई संपादन के लिए क्षमा करें, मुझे अपने फ़ोन से ऐसा करने में परेशानी हो रही है :)

function c(n,i){o=i||0;h=100;j=o-h;f=Math.abs(j);m=f/10|0;if((m==n&&m!=0)||n==f%10||f/h==n)console.log(j);if(o<h*2)c(n,o+1);}

1

डॉगलैंग, 42 गैर-व्हाट्सएप पात्र

f=n->for i in(-100..101)=>if n in str i=>print i

मेरे पाइथन समाधान के रूप में ही, केवल डोगेलैंग में परिवर्तित ।

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