আমাকে পাঁচটা দেবে না!


38

প্রশ্ন:

আপনাকে একটি সিকোয়েন্সের শুরু এবং শেষের পূর্ণসংখ্যা দেওয়া হবে এবং এর মধ্যে পূর্ণসংখ্যার সংখ্যাটি দেওয়া উচিত যা সংখ্যার অন্তর্ভুক্ত নয় 5। শুরু এবং শেষ সংখ্যাগুলি অন্তর্ভুক্ত করা উচিত!

উদাহরণ:

1,9 → 1,2,3,4,6,7,8,9 8 ফলাফল 8

4,17 → 4,6,7,8,9,10,11,12,13,14,16,17 12 ফলাফল 12

50,60 → 60 → ফলাফল 1

-59, -50 → ult ফলাফল 0

ফলাফল পাঁচটি থাকতে পারে।

শুরুর সংখ্যাটি সর্বদা শেষ সংখ্যার চেয়ে ছোট হবে। উভয় সংখ্যাও নেতিবাচক হতে পারে!

আমি আপনার সমাধানগুলির জন্য এবং আপনি এটি সমাধান করার জন্য খুব কৌতূহলী। হতে পারে আপনার কেউ একটি সহজ খাঁটি গণিতের সমাধান খুঁজে পাবেন।

সম্পাদনা এটি একটি কোড-গল্ফ চ্যালেঞ্জ, তাই সংক্ষিপ্ততম কোডটি জয়ী।


3
@ বিটসেক: এটাকে কাছে; তবে এটির একটি পরিবর্তনশীল পরিসীমা রয়েছে (এবং কোনও মডুলোর প্রয়োজন নেই)।
তিতাস

4
আমি বিজয়ী মানদণ্ড এবং কোড-গল্ফ ট্যাগ হিসাবে সংক্ষিপ্ততম কোডের প্রস্তাব দিই (আমি এটিও দেখিনি যে এটি ছিল না!)। এছাড়াও, আপনার সম্ভবত একটি টেস্ট কেস রাখা উচিত যা 50 বা 500 জুড়ে; এছাড়াও -50 প্রসারিত একটি এবং 0 টি প্রশস্ত একটি ভাল ধারণা হবে।
জোনাথন অ্যালান

1
@ জোনাথন অ্যালান: আমি উদাহরণগুলি আপডেট করব।
আরসুভেল

4
টেস্ট কেস: 50, 59 -> 0
Zgarb

14
আপনি বলেছেন: "শুরু নম্বর সর্বদা শেষ সংখ্যার চেয়ে ছোট হবে smaller" তবে আপনার উদাহরণগুলির একটি (-50, -59) সরাসরি
এটির

উত্তর:


21

জাভাস্ক্রিপ্ট (ES6), 36 33 বাইট

কারিটিং সিনট্যাক্সের সাথে ইনপুট নেয় (a)(b)

a=>F=b=>b<a?0:!/5/.test(b)+F(b-1)

ফর্ম্যাট এবং মন্তব্য

a =>                 // outer function: takes 'a' as argument, returns F
  F = b =>           // inner function F: takes 'b' as argument, returns the final result
    b < a ?          // if b is less than a
      0              //   return 0
    :                // else
      !/5/.test(b) + //   add 1 if the decimal representation of b does not contain any '5'
      F(b - 1)       //   and do a recursive call to F with b - 1

পরীক্ষার মামলা


( যখন আপনি কেবল বুলিয়ান প্রয়োজন তখন আমি সাধারণত testতার চেয়ে বেশি execপছন্দ করি))
নীল

@ নীল যা প্রকৃতপক্ষে আরও অর্থবোধ করে। আপডেট করা হয়েছে।
আর্নল্ড

এনবি: আমি ES6 কারিরিং সিনট্যাক্স সম্পর্কে কোনও টিপস পাইনি, তাই আমি একটি লিখেছিলাম
আর্নল্ড

5
@ লেথলকোডার b<aসেখানে উপস্থিত থেকে সমস্ত সংখ্যার মাধ্যমে গণনা করার পরে পুনরাবৃত্তি থামাতে bপারে a, সুতরাং এটি অপসারণ করা কেবল অসীম পুনরাবৃত্তি ঘটায়।
ইটিএইচ প্রডাকশনগুলি 20:37

1
@HristiyanDodov নামহীন বাইরের ফাংশন লাগে aআর্গুমেন্ট হিসাবে এবং আয় Fফাংশন, যা আবার লাগে bআর্গুমেন্ট হিসাবে এবং - থেকে পুনরুক্তি করতে বলা হয় যাও recursively - হিসাবে আপনি খেয়াল bকরতে a, সমস্ত পূর্ণসংখ্যার একটি থাকে না জন্য একটি পাল্টা বৃদ্ধিশীল 5তাদের দশমিক মধ্যে উপস্থাপনা।
আর্নৌলদ

17

জেলি , 8 7 বাইট

ডেনিসকে -1 বাইট ধন্যবাদ (একটি সংখ্যাটির সাথে সূচকে সেই সংখ্যাটিকে দশমিক তালিকা হিসাবে বিবেচনা করে ব্যবহার করুন)

rAw€5¬S

TryItOnline!

কিভাবে?

rAw€5¬S - Main link: from, to    e.g. -51, -44
r       - range(from, to)        e.g. [-51,-50,-49,-48,-47,-46,-45,-44]
 A      - absolute value         e.g. [51,50,49,48,47,46,45,44]
  w€    - first index of... for €ach (0 if not present)
    5   - five                   e.g. [1,1,0,0,0,0,2,0]
     ¬  - logical not            e.g. [0,0,1,1,1,1,0,1]
      S - sum                    e.g. 5

* পরম মান পরমাণুটি Aপ্রয়োজনীয়, যেহেতু দশমিক তালিকায় aণাত্মক সংখ্যার নেতিবাচক এন্ট্রি থাকে, যার কোনওটিই কখনই একটি হতে পারে না 5(প্রদত্ত উদাহরণটি দু'টির পরিবর্তে সমস্ত আটকে গণনা করবে)।


rAw€5¬Sএকটি বাইট সংরক্ষণ করে।
ডেনিস

@ ডেনিস ধন্যবাদ! আমার বিবরণটি কি "দশমিক দশমিক তালিকার হিসাবে গণ্য হয়" সঠিক?
জোনাথন অ্যালান

2
যথেষ্ট. wদশমিক অঙ্কগুলিতে একটি পূর্ণসংখ্যার যুক্তি যুক্ত করে।
ডেনিস


13

2sable , 6 5 বাইট

আদনানকে একটি বাইট সংরক্ষণ করে

Ÿ5¢_O

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

 Ÿ      # inclusive range
  5¢    # count 5's in each element of the range
    _   # negate
     O  # sum

দ্রষ্টব্য:¢ তালিকায় থাকা ম্যাচের উপাদানগুলি গণনা না করে ফাংশনটি প্রতিটি উপাদানটিতে নিজেকে প্রয়োগ করে তৈরি করার ক্ষেত্রে বাগের কারণে এটি কাজ করে ।


`অ্যারেতে যেমন ব্যবহার করা হয় তেমনটি আপনি মুছে ফেলতে পারেন : পি।
আদনান

@ আদনান: ধন্যবাদ! আমি যা পরীক্ষা করে যাচ্ছিলাম তবে ভুলে
গিয়েছি

9

পাইথন 2, 59 55 52 51 47 43 42 বাইট

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

একটি পুনরাবৃত্তি সমাধান। লজিকাল অপারেটরগুলি ব্যবহার করে সমাধান খুঁজতে আমাকে অনুপ্রেরণা দেওয়ার জন্য @ এক্সনরকে ধন্যবাদ ! এছাড়াও, আমাকে নির্দেশনা দেওয়ার জন্য এবং বাইটটি ৪৩ থেকে ৪২ পর্যন্ত কেটে দেওয়ার জন্য @ জোনাথন অ্যালান এবং @ এক্সনরকে ধন্যবাদ !

43 বাইট এ অন্যান্য প্রচেষ্টা

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

চান if!`x`.count('5')কাজ করে?
তিতাস

2
@ টিটাস পাইথনের সি-জাতীয় ভাষায় notঅপারেটর রয়েছে !, তবে এতে 3 বাইট লাগে :(
ইয়াইটসী

1
andএবং এর সাথে যৌক্তিক শর্ট সার্কিট ব্যবহার করার বিষয়ে ভাবুন or
xnor

1
হ্যাঁ, সুন্দরভাবে সম্পন্ন হয়েছে! এখন এটি ছোট করার বিষয়ে ভাবুন not
xnor

1
আপনি সত্যিই কাছাকাছি! স্টাফ চেষ্টা করা চালিয়ে যান।
xnor


6

05 এ বি 1 ই , 8 7 6 বাইট

আদনানকে একটি বাইট সংরক্ষণ করে

Ÿ5.å_O

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

Ÿ         # inclusive range
 5.å      # map 5 in y for each y in the list
    _     # logical negation 
     O    # sum

05 এ বি 1 ই ভেক্টরাইজডও করেছে å, যা আপনি Ÿ5.å_O6 বাইটের জন্য করতে পারেন ।
আদনান

negateঅর্থ -n, বা n==0?1:0?
ETH প্রোডাকশনগুলি

@ ইথ প্রডাকশনস: দুঃখিত, এটি অস্পষ্ট ছিল। আমার অর্থ যৌক্তিক n==0?1:0
অবহেলা

6

পাইথ, 9 8 বাইট

FryAmTheEggman একটি বাইট ধন্যবাদ সংরক্ষণ করা!

lf-\5T}E

ব্যাখ্যা:

        Q # Input
      }E  # Form an inclusive range starting from another input
          #   order is reversed, but doesn't matter
 f-\5T    # Filter by absence of '5'
l         # Count the number of elements left

এটি অনলাইন চেষ্টা করুন!



5

হাস্কেল , 39 বাইট

s!e=sum[1|x<-[s..e],notElem '5'$show x]

এটি অনলাইন চেষ্টা করুন! ব্যবহার:

Prelude> 4 ! 17
12

ব্যাখ্যা:

             [s..e]                     -- yields the range from s to e inclusive
          x<-[s..e]                     -- for each x in this range
          x<-[s..e],notElem '5'$show x  -- if the char '5' is not in the string representation of x
       [1|x<-[s..e],notElem '5'$show x] -- then add a 1 to the resulting list      
s!e=sum[1|x<-[s..e],notElem '5'$show x] -- take the sum of the list

4

আর, 33 বাইট

f=function(x,y)sum(!grepl(5,x:y))

ব্যবহার:

> f=function(x,y)sum(!grepl(5,x:y))
> f(40,60)
[1] 10
> f(1,9)
[1] 8
> f(4,17)
[1] 12



4

পিএইচপি 7.1, 57 55 বাইট

for([,$a,$b]=$argv;$a<=$b;)$n+=!strstr($a++,53);echo$n;

সাথে চালাও php -r '<code>' <a> <b>


এই পিএইচপি 7.1 সিনট্যাক্স না?
শে

@ অ্যারোস: এটি। তবে পিএইচপি 7.1 5 ঘন্টারও বেশি পুরানো ( ডিসেম্বর 1 এ প্রকাশিত )
তিতাস

1
অবশ্যই, আমি কেবল জিজ্ঞাসা করেছি কারণ আমি 7 বা তার বেশি হলে সংস্করণটি নির্দিষ্ট করতে অভ্যস্ত। পাইথনের জন্য এটিও একই ধরণের সম্মেলন
পুরো '11 এগারোটায়

1
পিএইচপি জন্য কনভেনশন - যতদূর আমি দেখেছি - অন্যথায় নির্দিষ্ট না করে সর্বাধিক সাম্প্রতিক সংস্করণ ব্যবহার করা।
তিতাস

আমি মনে করি না অনেকের কাছে সর্বশেষতম ছোটখাটো সংস্করণ রয়েছে। এই মুহুর্তে সর্বনিম্ন সাধারণ ডিনোমিনেটর সম্ভবত 5.5 হবে। ব্যক্তিগতভাবে আমি এফসি 25 ব্যবহার করছি (বেশ কাটা প্রান্ত হিসাবে বিবেচিত), যা বর্তমানে পিএইচপি 7.0 বিতরণ করে। আপনি যদি উইন্ডোজে থাকেন তবে আপনাকে সম্ভবত ম্যানুয়ালি আপডেট করতে হবে।
aross

4

গণিত, 46 44 42 বাইট

আলেফাল্ফা এবং ডেভিডসকে প্রতিটি 2 বাইট সংরক্ষণের জন্য ধন্যবাদ!

Tr@Boole[FreeQ@5/@IntegerDigits@Range@##]&

দু'জন পূর্ণসংখ্যার যুক্তি গ্রহণ করে এবং পূর্ণসংখ্যা ফেরত দেওয়া নামহীন ফাংশন। IntegerDigits@Range@##ইনপুটগুলির মধ্যে সমস্ত সংখ্যাকে অঙ্কের তালিকায় রূপান্তর করে; FreeQ@5কোন তালিকায় কোনটি নেই তা নির্ধারণের জন্য সেই তালিকাগুলি পরীক্ষা করে 5। তারপরে Booleবুলিয়ানদের জিরো এবং একটিতে রূপান্তর করে এবংTr ফলাফলগুলি যোগ করে।

অন্যান্য সমাধান (44 এবং 47 বাইট):

Count[Range@##,x_/;IntegerDigits@x~FreeQ~5]&

IntegerDigits@x~FreeQ~5কোনও সংখ্যার অঙ্কের তালিকা 5s-এর চেয়ে মুক্ত কিনা তা নির্ধারণ করে এবং Count[Range@##,x_/;...]&ইনপুটগুলির মধ্যে কতগুলি সংখ্যা সেই পরীক্ষায় উত্তীর্ণ হয় তা গণনা করে।

Tr[Sign[1##&@@IntegerDigits@#-5]^2&/@Range@##]&

1##&@@IntegerDigits@#-5একটি সংখ্যার অঙ্কের তালিকা গ্রহণ করে, সেগুলি থেকে 5 টি বিয়োগ করে এবং উত্তরগুলি একত্রে একত্র করে; Sign[...]^2তারপরে সমস্ত ননজারো সংখ্যাগুলিকে 1 এ রূপান্তর করে।


1
Count[Range@##,x_/;IntegerDigits@x~FreeQ~5]&
ডেভিডসি

1
Tr@Boole[FreeQ@5/@IntegerDigits@Range@##]&
আলেফাল্ফ

3

রুবি, 36 35 বাইট

->a,b{(a..b).count{|x|!x.to_s[?5]}}

-1 বাইটের জন্য Thx IMP1


1
এই তালিকার আকারের চেয়ে 5 টি সংখ্যার তালিকা ছাড়াই কী এই তালিকাটি ফেরত দেবে না?
আইএমপি 1

আপনি ঠিক বলেছেন, আমি ভুল সংস্করণটি অনুলিপি / আটকানো করেছি।
জিবি

1
বাইট সংরক্ষণের জন্য আপনি অনুসন্ধানের / পরিবর্তে ?5( '5'চরিত্রটি) ব্যবহার করতে পারেন /5
আইএমপি 1

3

জাভা 7, 80 78 বাইট

int c(int a,int b){int r=0;for(;a<=b;)r+=(""+a++).contains("5")?0:1;return r;}

Ungolfed:

int c(int a, int b){
  int r = 0;
  for (; a <= b; ) {
    r += ("" + a++).contains("5")
          ? 0
          : 1;
  }
  return r;
}

পরীক্ষার কোড:

এখানে চেষ্টা করুন।

class M{
  static int c(int a,int b){int r=0;for(;a<=b;)r+=(""+a++).contains("5")?0:1;return r;}

  public static void main(String[] a){
    System.out.println(c(1, 9));
    System.out.println(c(4, 17));
  }
}

আউটপুট:

8
12

3

পাওয়ারশেল, 42 41 বাইট

param($a,$b)$a..$b|%{$z+=!($_-match5)};$z

কমান্ড লাইন থেকে কল করা হয়েছে \ no5s.ps1 1 20


1
বাইট সংরক্ষণের জন্য আপনি স্থানটি ফেলে দিতে পারেন। কঠোরভাবে সংখ্যাসমূহের রেজেক্স প্যাটার্ন সহ আপনার ডিলিমিটারের প্রয়োজন নেই (যেমন, -replace3বা -split1বা -notmatch5)।
অ্যাডমবার্কবার্ক

আহ্, দুর্দান্ত, ধন্যবাদ @ অ্যাডমবর্কবার্ক
এমসিএমরডো

2

পাইথন 2, 61 56 বাইট

lambda a,b:len([n for n in range(a,b+1) if not"5"in`n`])

টুকাএক্স -5 বাইট ধন্যবাদ


নিরুৎসাহিত হবেন না! মজা করা এবং নিজেকে চ্যালেঞ্জ করা গুরুত্বপূর্ণ বিষয়। আপনি এখানে দুটি হোয়াইটস্পেস সরিয়ে ফেলতে পারেন not "5" in:) এছাড়াও, আপনি যদি পাইথন 2 ব্যবহার করেন তবে আপনি না xকরে `` উদ্ধৃতি দিয়ে ঘিরে রাখতে পারেন str(x)
Yytsi

@ টুকুএক্সএক্স ধন্যবাদ! এবং `x`
sagiksp

আপনি মুছে ফেলতে পারেন []। আপনারও আগে জায়গার দরকার নেই if
ডেনিস

@ ডেনিস আমি ইতিমধ্যে এটি চেষ্টা করেছি, তবে এটি অভিযোগ করে যে "জেনারেটরের ধরণের অবজেক্টের কোনও লেন () নেই"।
ইয়াতসি

পছন্দ করুন lambda a,b:sum(not"5"in`n`for n in range(a,b+1))যদিও কাজ করে। tio.run/nexus/…
ডেনিস

2

সুইট 52 বাইট

($0...$1).filter { !String($0).contains("5") }.count

যেহেতু আপনার চ্যালেঞ্জটি কোডগল্ফ চ্যালেঞ্জ, তাই আপনার বাইটোকন্টটি অন্তর্ভুক্ত করা উচিত। এছাড়াও, কোডগল্ফে (অন্তত এখানে), এটি একটি প্রয়োজনীয় যে সমস্ত প্রোগ্রামের যাদুঘরটি আসলে বিতর্কযোগ্য হয় (যেমন আপনার ফাংশনের নামটি কেবল একটি একক চরিত্র হতে পারে, আপনার আসল ফাংশন সম্ভবত একক লাইনে হ্রাস করা যেতে পারে)। আমি সুইফটকে চিনি না, আপনাকে স্টাফের মাধ্যমে আমাকে সংশোধন করতে হতে পারে।
ক্লিমিক

2

ব্যাচ, 95 বাইট

@set/an=0,i=%1
:g
@if "%i%"=="%i:5=%" set/an+=1
@set/ai+=1
@if %i% leq %2 goto g
@echo %n%

ম্যানুয়ালি লুপিং কিছু বাইট সংরক্ষণ করে কারণ আমার যেভাবেই চলকটিতে লুপের কাউন্টার দরকার।


2

পিএইচপি, 56 বাইট

for($i=$argv[1];$i<=$argv[2];)trim(5,$i++)&&$x++;echo$x;

এভাবে চালান:

php -r 'for($i=$argv[1];$i<=$argv[2];)trim(5,$i++)&&$x++;echo$x;' 1 9 2>/dev/null;echo
> 8

পিএইচপি 7.1 এর একটি সংস্করণ হবে 53 বাইট (ক্রেডিট টাইটাস):

for([,$i,$e]=$argv;$i<=$e;)trim(5,$i++)&&$x++;echo$x;

ব্যাখ্যা

for(
  $i=$argv[1];          # Set iterator to first input.
  $i<=$argv[2];         # Loop until second input is reached.
)
  trim(5,$i++) && $x++; # Trim string "5" with the characters in the
                        # current number; results in empty string when
                        # `5` is present in the number. If that is not
                        # the case, increment `$x`

echo$x;                 # Output `$x`

আহ ডাং আমি trimআবার দ্বিতীয় প্যারামিটারটি ভুলে গিয়েছিলাম ।
তিতাস

2

সিজেএম "সহজ খাঁটি গণিতের সমাধান", 60

{{Ab5+_,\_5#)<\9e]);_4f>.m9b}%}:F;q~_:z$\:*0>{((+F:-}{F:+)}?

এটি অনলাইনে চেষ্টা করুন

এটি কোনও বিন্যাসে, একটি অ্যারেতে সংখ্যাগুলি নেয়।

ব্যাখ্যা:

একটি মূল সমস্যা হ'ল f (n) = কোন ধনাত্মক n এর জন্য 1 থেকে n (সমেত) নন-5 সংখ্যার সংখ্যা গণনা করা। এবং উত্তরটি হ'ল এন এর দশমিক অঙ্ক নিন, 9 এর সাথে প্রথম 5 (যদি থাকে) এর পরে সমস্ত অঙ্কগুলি প্রতিস্থাপন করুন, তারপরে সমস্ত অঙ্ক 5,9 এর সাথে 4..8 (হ্রাস) সাথে প্রতিস্থাপন করুন এবং বেস 9 থেকে রূপান্তর করুন। উদাহরণস্বরূপ 1752 → 1759 → 1648 → 1 * 9 ^ 3 + 6 * 9 ^ 2 + 4 * 9 + 8 = 1259। মূলত, প্রতিটি অঙ্কের অবস্থানের 9 টি গ্রহণযোগ্য মান রয়েছে এবং একটি 5XXX একটি 49999 এর সমতুল্য কারণ তাদের মধ্যে কোনও বৈধ সংখ্যা নেই।

এটি সমাধান করার পরে, আমাদের কয়েকটি কেস রয়েছে: যদি ইনপুট নম্বরগুলি (বলুন ক এবং খ, একটি <বি) (কঠোরভাবে) ইতিবাচক হয়, তবে ফলাফলটি চ (খ) -ফ (এ -1) হয়। যদি সেগুলি নেতিবাচক হয়, তবে আমরা পরম মানগুলি নিতে পারি, সেগুলি পুনরায় অর্ডার করতে এবং একই গণনাটি ব্যবহার করতে পারি। এবং যদি একটি <= 0 <= b হয় তবে ফলাফল চ (-a) + চ (খ) +1।

প্রোগ্রামটি প্রথমে উপরে বর্ণিত হিসাবে ফাংশনটি কার্যকর করে (তবে একটি অ্যারেতে প্রতিটি সংখ্যায় প্রয়োগ করা হয়), তারপরে ইনপুটটি পড়ে, সংখ্যাগুলিকে পরম মানগুলিতে রূপান্তর করে তাদের পুনঃব্যবস্থা করে এবং উপরের 2 টি গণনার মধ্যে একটি ব্যবহার করে, তার উপর ভিত্তি করে একটি * b> 0 শুরুতে।


"খাঁটি" নয় তবে দুর্দান্ত পদ্ধতি। এখানে, একটি +1 :) পান
ম্যাথু রোহ

@ ম্যাথেরহো ধন্যবাদ, তবে খাঁটি না বলতে কী বোঝাতে চাইছেন? এটি এমন একটি সমাধান যা পরিসরের মাধ্যমে পুনরাবৃত্তি না করে ইনপুট সংখ্যায় মোটামুটিভাবে গাণিতিক গণনা করে। আপনি আর কি আশা করছিলেন?
আদিতসু

2

পাইথন 2 , 54 বাইট

i,j=input();k=0
while i<=j:k+=not"5"in`i`;i+=1
print k

এটি অনলাইন চেষ্টা করুন!

সংক্ষিপ্ত পাইথন উত্তর নয় একই অ্যালগরিদম ব্যবহার করে তবে কিছুক্ষণ লুপের সাথে প্রয়োগের একটি ভিন্ন উপায় এবং এটি ল্যাম্বডা ফাংশন নয়।


এটি একটি প্রোগ্রাম এবং কোনও ফাংশন নয় এবং এটি ব্যবহারের পরিবর্তে ব্যবহার করে। কি আলাদা না? ঠিক আছে, এটি এখনও বর্ধিত ইনপুটটির ভিতরে "5" স্ট্রিং সন্ধান করছে, সম্মত। একটি ভাল উপায় আছে কি?
এলপেড্রো

ঠিক এটাই এটি এবং এ কারণেই এটি পৃথক। দুঃখিত, আমার মন্তব্যটি অন্যরকম করা উচিত ছিল।
এলপেড্রো

একই অ্যালগরিদম, বাস্তবায়নের বিভিন্ন উপায়। আপনার মন্তব্যগুলিতে কোনও সমস্যা নেই। এটি কি আরও ভাল শব্দযুক্ত?
এলপেড্রো

এটি হ্যাঁ :) মন্তব্য বিভাগটি পরিষ্কার দেখানোর জন্য আমি এই মন্তব্যগুলি সরিয়ে দেব।
Yytsi

1

জাভা 7, 77 বাইট

এটি কেভিন্স উত্তরের একটি উন্নতি উত্তরের , তবে যেহেতু এখনও মন্তব্য করার খ্যাতি আমার নেই, তাই এই নতুন উত্তরটি করতে হবে।

সুতরাং আমি যা করেছি তা হ'ল:

  • indexOfবিবৃতি দিয়ে প্রতিস্থাপন করুনcontains(-1 বাইট)
  • কন্ডিশনাল স্টেটমেন্টে-লুপের বর্ধনকারী অংশটি সরান (-২ বাইট)

লুপের জন্য ( 77 বাইট ):

int c(int a,int b){int r=1;for(;a++<b;)r+=(""+a).contains("5")?0:1;return r;}

পুনরাবৃত্ত ( 79 বাইট ):

int d(int r,int a,int b){r+=(""+a).contains("5")?0:1;return a!=b?d(r,a+1,b):r;}

আউটপুট:

8
12

8
12

এটি পরীক্ষা এখানে !


ওয়েলকাম পিপিসি! ইতিমধ্যে বেশ সুন্দর গল্ফযুক্ত উত্তরের দুর্দান্ত অনুসন্ধানগুলি। আমি জাভা সম্পর্কে তেমন কিছু জানি না তবে তাদের (""+a).contains("5")?0:1দ্বারা পুনঃস্থাপনযোগ্য হওয়া উচিত নয় !(""+a).contains("5")?
ক্রিস্টোফ

1
ক্রিস্টোফ দু: খজনকভাবে না, যেহেতু জাভাতে একটি বুলিয়ান আসলে একটি বুলিয়ান। সুতরাং একটি ত্রিনিদী অপারেশন হল একমাত্র উপায়।
টোবিয়াস মিস্টার

এইচএম দুঃখজনক কি হবে (""+a).contains("5")||r++?
ক্রিস্টোফ

1
@ ক্রিসটফ যা কোনওভাবেই কাজ করে না, কারণ আপনার নিজের বুলিয়ান এক্সপ্রেশন থাকতে পারে না। আমি এটিকে অন্যান্য স্থানে (লুপ ঘোষণার মতো) কাজ করার চেষ্টা করছি তবে খুব বেশি সাফল্যের সাথে নয়। সুন্দর ধারণা থ্যাও;)
টোবিয়াস মিস্টার

1

সি #, 67 বাইট

a=>b=>{int c=0;for(;a<=b;)c+=(a+++"").Contains("5")?0:1;return c;};

আমি ব্যবহার করার আশা করছিলাম for(int c=0;...)তবে এটি সংকলন করতে ব্যর্থ হয়েছে কারণ c
রিটার্নটি

1

জাভাস্ক্রিপ্ট (ES6), 58 56 49 বাইট

let f =

(s,e)=>{for(c=0;s<=e;)c+=!/5/.test(s++);return c}

console.log(f(1, 9));
console.log(f(4, 17));
console.log(f(-9, -1));

Golfed 7 বাইট ধন্যবাদ ETHproductions


1
আপনি c+=!/5/.test(s++)কয়েকটি বাইট সংরক্ষণ করতে ব্যবহার করতে পারেন :-)
ETH প্রোডাকশনগুলি

অনেক ধন্যবাদ! যদিও আমার গল্ফগুলি মুছে ফেলতে হয়েছিল। আমি তাদের জন্য খুব গর্বিত ছিল। :(
হৃস্টিয়ান ডোডভ

আমি মনে করি আপনি তরকারী ব্যবহার করতে পারবেন ie` s => e => `
TheLethalCoder

শীর্ষ উত্তর সিনট্যাক্স সংবাহন ব্যবহার করে। আমি আমার সম্পাদনা করব না কারণ এটি প্রায় একই হয়ে যাবে। যদিও এটি নির্দেশ করার জন্য ধন্যবাদ!
হ্রিস্টিয়ান দোডভ

1

এমএটিএল , 10 বাইট

&:!V53-!As

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

        % Implicitly grab two input arguments
&:      % Create an array from [input1....input2]
!V      % Convert to a string where each number is it's own row
53-     % Subtract ASCII '5' from each character.
!A      % Detect which rows have no false values (no 5's). Returns a logical array
s       % Sum the logical array to get the # numbers without 5's
        % Implicitly display the result

1

সি #, 77 বাইট

(n,m)=>{var g=0;for(var i=n;i<m+1;i++)g+=(i+"").Contains("5")?0:1;return g;};

নামবিহীন ল্যাম্বদা কল।

ইনপুট হিসাবে n(প্রথম সংখ্যা) এবং m(শেষ নম্বর) ব্যবহার করে , তারপরে স্ট্রিং কন্টেন্ট ( "".Contains("")) দ্বারা চেক করে ।


আমি হ্রাসকারী না, তবে ওডি প্রদত্ত চ্যালেঞ্জের জন্য মডুলো 5 সঠিক সমাধান নয়। 5এটির সংখ্যায় অঙ্কযুক্ত যে কোনও কিছু বাদ দেওয়া উচিত , সুতরাং 10(যা আপনার উত্তর গণনা করবে না) তা গণনা করা উচিত।
কেভিন ক্রুইজসেন 20'17

@ কেভিন ক্রুজসেন স্থির
devRicher

gএটি যেমন নামকরণ করা হয়েছে varvar g="";n=>m=>
ঠিকঠাক

এছাড়াও এটি তালিকাটিকে গণনা হিসাবে
ছাড়িয়েছে

1
@ কেভিন ক্রুজসেন আপনার সম্পাদনাগুলির সাথে এটিই মূলত আমার উত্তর ...
TheLethalCoder

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.