किसी विशिष्ट श्रेणी में किसी संख्या में कितने पूर्णांक होते हैं


19

प्रोग्राम को इनपुट नंबर, रेंज की शुरुआत और रेंज के अंत में ले जाना चाहिए, और रेंज के शुरू और अंत के बीच नंबर कितने पूर्णांक को सम्मिलित करता है , इसे आउटपुट करता है । दोनों कार्यक्रमों और कार्यों की अनुमति है।

उदाहरण इनपुट

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

//Input example 1
3,1,100
//Input example 2
3
1
100
//Input example 3
3 1 100
//Input example 4
a(3, 1, 100);

उपरोक्त सभी चार इनपुट उदाहरण मान्य हैं और उन सभी का मतलब है कि 3प्रश्न में नंबर है, 1रेंज की शुरुआत और रेंज 100का अंत है।

और फिर प्रोग्राम को आउटपुट करना चाहिए कि कितनी बार 3रेंज 1में 100 समावेशी से प्रकट होता है । 3पूर्णांकों में प्रकट होता है 3, 13, 23, 30, 31, 32, 33, ..., 9319 को कुल बार में। इसलिए प्रोग्राम को आउटपुट के 19रूप में आउटपुट करना चाहिए क्योंकि यह है कि कितनी बार 3से रेंज में दिखाई देता 1है 100

नियम

  • दोनों कार्यक्रमों और कार्यों की अनुमति है।
  • सभी नंबर पूर्णांक होंगे, जिसका अर्थ है कि कोई भी s या s नहीं होगा ।floatdouble
  • नोट: मांगी गई संख्या हमेशा सीमा में होगी 0≤x≤127। ऐसे कोई मामले नहीं होंगे जहां यह इस 0≤x≤127सीमा के बाहर होगा ।
  • जैसा कि पहले उदाहरण में, इस मामले के साथ 33, संख्या 3को केवल एक बार प्रदर्शित होने के रूप में गिना जाएगा , दो बार नहीं
  • आरंभ और सीमा की समाप्ति के मूल्यों के बीच हो जाएगा -65536और 65535समावेशी।
  • रेंज की शुरुआत का मूल्य रेंज के अंत से अधिक या बराबर नहीं होगा। start < end
  • इसके अलावा रेंज समावेशी है। उदाहरण के लिए यदि इनपुट था 8 8 10, तो रेंज होगी 8≤x≤10और इसलिए आउटपुट 1 होगा।
  • इनपुट उदाहरणों में दिखाए गए किसी भी तरीके से लिया जा सकता है। इनपुट को एक स्ट्रिंग या एक संख्या के रूप में लिया जा सकता है, किसी भी तरह से आप चाहें।

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

3 1 100
19

3 3 93
19

12,-200,200
24          //This is because 12 appears in -129, -128, ..., -112, -12, 12, 112, 120, 121, 122, ...

123,1,3
0           //This is because all of 123's digits have to appear in the same order

3 33 34
2           //Because 3 appears in 2 numbers: 33 and 34

a(0,-1,1);
1

$ java NotVerbose 127 -12 27
0

स्नैक स्निपेट

यह सुनिश्चित करने के लिए कि आपका उत्तर दिख रहा है, कृपया अपना उत्तर शीर्षक मार्कडाउन टेम्पलेट का उपयोग करके शीर्षक के साथ शुरू करें:

# Language Name, N bytes

Nआपके सबमिशन का आकार कहां है। यदि आप अपने स्कोर में सुधार करते हैं, तो आप पुराने अंकों को हेडलाइन में रख सकते हैं , उनके माध्यम से स्ट्राइक करके। उदाहरण के लिए:

# Ruby, <s>104</s> <s>101</s> 96 bytes

यदि आप अपने हेडर में कई संख्याओं को शामिल करना चाहते हैं (जैसे कि आपका स्कोर दो फ़ाइलों का योग है या आप दुभाषिया ध्वज दंड को अलग से सूचीबद्ध करना चाहते हैं), तो सुनिश्चित करें कि हेडर में वास्तविक अंक अंतिम संख्या है:

# Perl, 43 + 2 (-p flag) = 45 bytes

आप भाषा के नाम को एक लिंक भी बना सकते हैं जो लीडरबोर्ड स्निपेट में दिखाई देगा:

# [><>](http://esolangs.org/wiki/Fish), 121 bytes

जवाबों:


8

05AB1E , 6 बाइट्स

फार्म में इनपुट: ऊपरी बाउंड , लोअर बाउंड , संख्या

Ÿvy³åO

स्पष्टीकरण:

Ÿ       # Inclusive range, [a, ..., b]
 vy     # For each element...
   ³å   # Check if the third input is a substring of the number
     O  # Sum up the results

CP-1252 एन्कोडिंग का उपयोग करता है । इसे ऑनलाइन आज़माएं!


4
Groovy {a,b,c->} Aww को चुनता है ... ख़तरा, मैं फिर से शुरू होने से पहले ही हार गया।
मैजिक ऑक्टोपस Urn

इस चुनौती को जीतने के लिए बधाई!
कृति लिथोस

@KritiiLithos धन्यवाद! :)
अदनान

6-बाइट्स विकल्प:Ÿʒ³å}g
केविन क्रूज़सेन

9

बैश, 20 बाइट्स

स्पष्ट उत्तर

seq $2 $3|grep -c $1

उदाहरण

$ bash golf 3 1 100
19

6

पर्ल, 20 बाइट्स

grep@ Ardnew के उत्तर के रूप में उपयोग करके 2 बाइट्स सहेजे गए ।

Bytecount में कोड और -apझंडे के 18 बाइट्स शामिल हैं ।

$_=grep/@F/,<>..<>

तीन अलग-अलग लाइनों पर 3 नंबर दें:

perl -ape '$_=grep/@F/,<>..<>' <<< "3
1
100"

5

पायथन 2, 47 43 बाइट्स

अपेक्षाकृत सीधा, पायथन 2 के reprसंक्षिप्त रूप का उपयोग कर रहा है।

f=lambda n,a,b:a<b and(`n`in`a`)+f(n,-~a,b)

ouput:

f(  3,    1, 100) -> 19
f(  3,    3,  93) -> 19
f( 12, -200, 200) -> 24
f(123,    1,   3) -> 0
f(  3,   33,  34) -> 2
f(  0,   -1,   1) -> 1
f(127,   12,  27) -> 0

आपको -~aइसके बजाय सभी फैंसी और उपयोग करने की आवश्यकता क्यों थी a+1?
११:१५ बजे अरटीयर

1
@ मौज मस्ती के लिए!
केड

4

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

f=(n,s,e)=>s<=e&&!!`${s++}`.match(n)+f(n,s,e)

(मेरा सबसे अच्छा गैर-संस्करण संस्करण 61 बाइट्स था।) संपादित करें: @ edc65 के लिए 1 बाइट धन्यवाद।


!!matchके बजाय includes
edc65

4

जेली , 7 बाइट्स

rAẇ@€⁵S

TryItOnline!

इनपुट: प्रारंभ, अंत, ToFind

कैसे?

rAẇ@€⁵S - Main link: Start, End, ToFind
r       - range: [Start, ..., End]
 A      - absolute values
     ⁵  - third input: ToFind
  ẇ@€   - sublist exists in with reversed @rguments for €ach
      S - sum

एक पूर्णांक अस्तित्व के लिए एक पूर्णांक की डिफ़ॉल्ट कास्टिंग एक दशमलव सूची (एक चरित्र सूची नहीं) के लिए चेकलिस्ट कास्ट करता है, इसलिए नकारात्मक संख्याओं का एक अग्रणी नकारात्मक मान होता है (जैसे -122-> [-1,2,2]जो एक सबलिस्ट नहीं मिलेगा [1,2]) इसलिए इसे लेना निरपेक्ष मूल्य पहली बार गोल्फ के घोल की तरह लगता है।


4

PowerShell v2 +, 64 62 56 बाइट्स

param($c,$a,$b)$(for(;$a-le$b){1|?{$a++-match$c}}).count

-6 बाइट्स mazzy के लिए धन्यवाद

प्रपत्र संख्या के कमांड-लाइन तर्कों के माध्यम से इनपुट करें निचला_बाहर अपर_बाउंडforयदि $(...)स्क्रिप्ट स्क्रिप्ट बनाने में घिरी नहीं है, तो पार्स त्रुटियों के कारण अर्धविराम के कारण संकेतन पर थोड़ा नासमझ । हम मूल रूप से ऊपर की ओर लूप करते हैं $aजब तक कि हम हिट नहीं करते हैं $b, Where-Object( |?{...}ए) उन नंबरों को बाहर निकालने के लिए जो रीगेक्स के -matchखिलाफ हैं $c। यही कारण है कि Parens में समझाया गया है, हम इसके बाद लेते .countहैं, और यह पाइपलाइन पर छोड़ दिया जाता है और आउटपुट निहित है।


यदि, हालांकि, हम गारंटी देते हैं कि सीमा 50,000 से अधिक तत्वों की नहीं होगी, तो हम लूप को छोड़ सकते हैं और बस रेंज ऑपरेटर को ..सीधे 45 43 बाइट्स के लिए उपयोग कर सकते हैं । चूंकि यह चुनौती के विनिर्देशों में नहीं है, हालांकि, यह मान्य नहीं है। ओह।

param($c,$a,$b)($a..$b|?{$_-match$c}).count

महान! 50K तत्वों की जानकारी के लिए धन्यवाद। सुझावों के एक जोड़ेparam($c,$a,$b)$(for(;$a-le$b){1|?{$a++-match$c}}).count
mazzy

param($c,$a,$b)($a..$b|?{$_-match$c}).countपर सीमा -65536..65535 साथ काम करता हैPowershell 5.1
Mazzy

3

विम, 46 , 41 बाइट्स

C<C-r>=r<tab><C-r>")<cr><esc>jC0<esc>:g/<C-r>"/norm G<C-v><C-a>
kd{

इनपुट इस प्रारूप में है:

1, 100
3

2

हास्केल, 65 बाइट्स

import Data.List
(s#e)i=sum[1|x<-[s..e],isInfixOf(show i)$show x]

importस्कोर खंडहर। प्रयोग उदाहरण: ((-200)#200)12-> 24


उपयोग उदाहरण को 24 आउटपुट करना चाहिए क्योंकि 12 -200 और 200 के बीच 24 बार दिखाई देता है
Kritii Lithos

@ कृतिलीथोस: ओह सॉरी! यह निश्चित रूप से, यह सिर्फ एक कॉपी और पृष्ठ त्रुटि है।
नमि

2

जावा 7 85 बाइट्स

int x(int a,int b,int c){int t=0;for(;b<=c;)if((b+++"").contains(a+""))t++;return t;}

2

स्विफ्ट 3, 96 93 बाइट्स

import Cocoa
func c(n:Int,s:Int,e:Int){print((s...e).filter{"\($0)".contains("\(n)")}.count)}

1 संपादित करें:

शॉर्टहैंड मापदंडों का उपयोग करके 3 बाइट्स सहेजे गए


2

स्काला, 50 बाइट्स

(c:String)=>(_:Int)to(_:Int)count(""+_ contains c)

पहला इनपुट कर लिया जाता है; इसे इस तरह से कॉल करें:f("12")(-200,200)

Explantion:

(c:String)=>  //define an anonymous function taking a string parameter
  (_:Int)     //create a range from an anonymous int parameter
  to          //to
  (_:Int)     //another anonymous int parameter
  count(      //and count how many...
   ""+_       //elements converted to a string
   contains c //contain c
  )

2

आर, 32 बाइट्स

काफी निष्कपट:

function(a,b,c)sum(grepl(a,b:c))

1
PPCG में आपका स्वागत है! अच्छा उत्तर लेकिन यह मानते हुए कि इनपुट पहले से ही निर्दिष्ट है आमतौर पर स्वीकार नहीं किया जाता है। अपने जवाब को योग्य बनाने के लिए आपको या तो स्टडिन से इनपुट पढ़ना होगा: जैसे a=scan();sum(grepl(a,a[2]:a[3]))या किसी फ़ंक्शन के तर्क:, function(a,b,c)sum(grepl(a,b:c))इस मामले में दोनों बराबर।
बिलीवोब

@ बिलीवॉब धन्यवाद, इसे ध्यान में रखेंगे! तदनुसार जवाब दिया।
न्यूटल

1

सी #, 71 बाइट्स

लैम्बदास को धन्यवाद मेरे जावा उत्तर को मारो

(t,l,u)=>{int d=0;for(;l<=u;)if((l+++"").Contains(t+""))d++;return d;};

जावा में लैम्ब्डा भी है
क्रिक्सी लिथोस

हाँ मैं सिर्फ इसके बारे में पढ़ना शुरू किया, लेकिन वे कुछ बॉयलरप्लेट सामान कि bytecount बड़ा होगा की आवश्यकता नहीं है, या मैं उसे गिनती नहीं कर सकते हैं
Yodle

बेशर्मी से चुराया गया @Grax का जावास्क्रिप्ट उत्तर (n,s,e)=>s>e?0:((""+s).Contains(n+"")?1:0)+f(n,++s,e);तरीका छोटा है
hstde

1

रूबी 44 बाइट्स

m=->(n,s,f){(s..f).count{|x|x.to_s[/#{n}/]}}

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

m.(3,1,100)     #=> 19
m.(3,3,93)      #=> 19
m.(12,-200,200) #=> 24
m.(123,1,3)     #=>  0
m.(3,33,34)     #=>  2
m.(0,-1,1)      #=>  1
m.(127,-12,27)  #=>  0

1

PHP, 62 बाइट्स

बहुत सीधे आगे दृष्टिकोण:

<?=count(preg_grep('/'.($a=$argv)[1].'/',range($a[2],$a[3])));

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


अंडरस्कोर या रीगेक्स सीमांकक के रूप में किसी भी पत्र के साथ 4 बाइट्स सहेजें। (कोई उद्धरण की जरूरत है)
टाइटस

आप 3 बाइट<?=count(preg_grep("/$argv[1]/",range($argv[2],$argv[3])));
जार्ज ह्यूल्समैन

1

सी, 143 135 बाइट्स

8 बाइट बचाने में मदद करने के लिए @Kritii लिथोस का धन्यवाद

निश्चित रूप से यह बेहतर किया जा सकता है, लेकिन इसका सर्वश्रेष्ठ मुझे अभी के लिए मिला है। C स्ट्रिंग्स को बहुत इनायत से हैंडल नहीं करता है, इसलिए स्वाभाविक रूप से इसमें काफी ऑपरेशन होते हैं।

int C(int N,int l,int h){char b[99],n[99];int t=0,i=1;sprintf(n,"%d",N);for(;i<=h;i++){sprintf(b,"%d",i);if(strstr(b,n))++t;}return t;}

अधूरा + कार्यक्रम

#include <string.h>
#include <stdlib.h>
#include <stdio.h>

int C(int N,int l,int h)
{
    char b[99], n[99];
    int t=0,i=1;
    sprintf(n,"%d",N);
    for(;i<=h;i++)
    {
        sprintf(b,"%d",i);
        if(strstr(b,n))
            ++t;
    }
    return t;
}

int main()
{
  printf("%d\n", C(3, 1, 100));
}

मुझे लगता है कि आप int i=lफॉर-लूप से हटा सकते हैं और इसके बजाय इसे कुछ बाइट्स को बचाने के लिए int t=0इस तरह से इनिशियलाइज़ कर सकते हैं int t=0,i=l
कृतिका लिथोस

यह संकलन नहीं है? सी (एन, एल, एच) {चार बी [99], एन [99]; इंट टी = 0, आई = एल; स्प्रिंटफ (एन, "% डी", एन); के लिए; (? मैं <= एच; आई ++; ) {स्प्रिंटफ (b, "% d", i); अगर (स्ट्रैट (b, n)) ++ t;} t;} t;} मुझे लगता है कि इसमें भी कोई शामिल नहीं है ...
RosLuP

93 बाइट्सb[9],n[9],t;C(N,l,h){for(t=!sprintf(n,"%d",N);l<=h;strstr(b,n)&&++t)sprintf(b,"%d",l++);N=t;}
सीलिंगकैट

1

जावास्क्रिप्ट, 46 45 बाइट्स

f=(i,s,e)=>s>e?0:RegExp(i).test(s)+f(i,++s,e)

प्रारंभ> अंत तक पुन: गणना करें

संपादित करें: एक बाइट को बचाने के लिए RegExp परीक्षण पर स्विच करें


1

PHP, 68 63 बाइट्स

for($a=$argv;$a[2]<=$a[3];)$o+=strstr($a[2]++,$a[1])>'';echo$o;

जैसे उपयोग करें:

 php -r "for($a=$argv;$a[2]<=$a[3];)$o+=strstr($a[2]++,$a[1])>'';echo$o;" 3 1 100

संपादित करें: 5 बाइट्स ने टाइटस को धन्यवाद दिया


strstr($a[2]++,$a[1])>""के बजाय strpos($a[2]++,$a[1])!==false5 बाइट बचाता है।
टाइटस

1

पॉवरशेल, 48 बाइट्स

नियम के अनुसार, सीमा में 50,000 से अधिक तत्व हो सकते हैं। इसलिए हम रेंज ऑपरेटर का ..सीधे उपयोग नहीं कर सकते हैं। धन्यवाद AdmBorkBork

सीधा:

param($c,$a,$b)for(;$a-le$b){$i+=$a++-match$c}$i

टेस्ट स्क्रिप्ट:

$f = {

param($c,$a,$b)for(;$a-le$b){$i+=$a++-match$c}$i

}

@(
    ,(19, 3,1,100)
    ,(19, 3,3,93)
    ,(24, 12,-200,200)
    ,(0, 123,1,3)
    ,(2, 3,33,34)
    ,(1, 0,-1,1)
    ,(0, 127,-12,27)
    ,(44175, 0,-65536,65535)
) | % {
    $e,$a = $_
    $r = &$f @a
    "$($e-eq$r): $r"
}

आउटपुट:

True: 19
True: 19
True: 24
True: 0
True: 2
True: 1
True: 0
True: 44175

1

जाप , 14 8 बाइट्स

पूर्णांक को अंतिम इनपुट मान के रूप में पाया जाता है।

õV èÈsøW

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


व्याख्या

             :Implicit input of integers U=start, V=end & W=number
õV           :Range [U,V]
    È        :Map
     s       :  Convert to string
      øW     :  Contains W?
   è         :Count truthy values

चूंकि पिछले संस्करणों में एक स्पष्टीकरण का अभाव है, इसलिए मुझे उन पर यकीन नहीं है, लेकिन आपका वर्तमान 6-बाइट समाधान गलत है मुझे डर है। इस नियम को देखें: " पहले उदाहरण में, इस मामले के साथ 33, संख्या 3को केवल एक बार प्रदर्शित होने के रूप में गिना जाएगा, दो बार नहीं। " आपकी घटना-गणना दो बार Wगिना जाएगा 3
केविन क्रूज़सेन

धन्यवाद, @ केविनक्रूजसेन, एक महीने बाद फिर से आया और सोच रहा था कि मैं ऐसा क्यों कर रहा था जब मैं छोटा रास्ता था - अद्यतन करने से पहले चुनौती को फिर से पढ़ना चाहिए! मैंने इसे अभी वापस ले लिया है।
झबरा

मैं एक ही बात कुछ बार हुआ था। मैं अपना जवाब देखता हूं, सोचता हूं: यह बहुत आसान हो सकता है, इसे बदल रहा हूं। और इससे पहले कि मैं सहेजने वाले परिवर्तनों को हिट करूं, मुझे लगता है कि मैं अब चुनौती की गलत व्याख्या करता हूं। Btw, मैं अभी भी 8-बाइट समाधान के लिए स्पष्टीकरण के बारे में उत्सुक हूं। :)
केविन क्रूज़सेन

1
@ केविनक्रूजसेन: स्पष्टीकरण जोड़ा गया।
झबरा

0

जावा, 92 89 71 बाइट्स

अब लंबोदर के साथ!

(t,l,u)->{int z=0;for(;l<=u;)if((l+++"").contains(t+""))z++;return z;};

पुराने 89 बाइट फ़ंक्शन समाधान:

int d(int t,int l,int u){int a=0,i=l;for(;i<=u;)if((i+++"").contains(t+""))a++;return a;}

सुपर वेतन वृद्धि समारोह के लिए हुर्रे!


आप निकाल सकते हैं int i=lके लिए लूप से और बदले के साथ यह घोषणा aकी तरह int a=0,i=l;कुछ बाइट्स बचाने के लिए
Kritixi lithos

आह मुझे पता था कि मैं कुछ याद किया, धन्यवाद!
योडल

1
मूल रूप से इस जवाब के रूप में ही है ।
क्रिति लिथोस

0

गोल्फशर्प (गैर-प्रतिस्पर्धात्मक), 41 बाइट्स

(w,q,e)=>r(q,1+e-q).w(n=>n.T().I(w)).L();

प्रतिस्पर्धा 45 बाइट्स

(w,q,e)=>r(q,1+e-q).w(n=>n.T().I(w.T())).L();

1
अंतिम प्रतिबद्ध 8 मिनट पहले था, इसलिए इसके लिए एक प्रतिस्पर्धात्मक उत्तर होना चाहिए कि चुनौती शुरू होने से पहले यह काम करे। क्या आप इसे सत्यापित कर सकते हैं?
काडे

मुझे लगता है कि, अगर मैं इसे गैर-प्रतिस्पर्धा में नहीं बदलूंगा, तो तय किए गए बगों को संपादित करना आवश्यक है। अब बदल जाएगा (मैं भाषा को बेहतर बनाने के लिए चुनौतियों का उपयोग करता
हूं

2
8 मिनट पहले कोड कमिटमेंट Iने तत्व को स्ट्रिंग में बदलने से पहले यह जाँचने के लिए बदल दिया कि क्या इसमें यह शामिल है।
काडे


0

रैकेट 91 बाइट्स

(for/sum((i(range s(+ 1 e))))(if(string-contains?(number->string i)(number->string d))1 0))

Ungolfed:

(define(f d s e)
  (for/sum ((i (range s (+ 1 e))))
    (if(string-contains?
        (number->string i)
        (number->string d))
       1 0 )))

परिक्षण:

(f 3 1 100)
(f 3 3 93)
(f 12 -200 200)
(f 123 1 3)
(f 3 33 34)
(f 0 -1 1)

आउटपुट:

19
19
24
0
2
1

0

Axiom बाइट्स 90

f(y,a,b)==(c:=0;for x in a..b repeat(if position(y::String,x::String,1)~=0 then c:=c+1);c)

परिणाम

(3) -> f(3,1,100)=19,f(3,3,93)=19,f(12,-200,200)=24,f(123,1,3)=0,f(3,33,34)=2
   (3)  [19= 19,19= 19,24= 24,0= 0,2= 2]
                                  Type: Tuple Equation NonNegativeInteger
(4) -> f(0,-1,1)=1, f(127,12,27)=0
   (4)  [1= 1,0= 0]
                                  Type: Tuple Equation NonNegativeInteger

0

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

(w=ToString;t=0;Table[If[StringContainsQ[w@i,w@#1],t++],{i,#2,#3}];t)&

इनपुट

[12, -200,200]

उत्पादन

24


0

क्लोजर, 65 बाइट्स

#(count(for[i(range %2(inc %3)):when(some(set(str %))(str i))]i))

0

PHP, 56 बाइट्स

पाइप के रूप में चलाएं इसे ऑनलाइन आज़माएं

इनपुट

$argv = [number_to_find, range_start, range_end];

कोड

<?=substr_count(join(range(($a=$argv)[1],$a[2])),$a[0]);

व्याख्या

#substrcount, counts the aparitions of a subtring in a string
substr_count( 
           join( range(($a=$argv)[1],$a[2])), # String with the range
           $a[0]);                            # The number you are looking for

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