নিখোঁজ সংখ্যাটি কী (9 দ্বারা বিভাজ্যতা)


22

চ্যালেঞ্জ

9 এবং একটি অনুপস্থিত অঙ্ক দ্বারা বিভাজ্য একটি সম্পূর্ণ সংখ্যা দেওয়া, অনুপস্থিত অঙ্কটি সন্ধান করুন।

অনুপস্থিত অঙ্কটি যতক্ষণ না এটি সুসংগত হিসাবে 0-9 সংখ্যা বাদে অন্য কোনও চরিত্রের দ্বারা প্রতিনিধিত্ব করতে পারে।

যদি অনুপস্থিত অঙ্কটি 0 বা 9 হতে পারে তবে কিছু বোঝাতে আউটপুট।

ধরে নিন যে ব্যবহারকারী কেবলমাত্র একটি অনুপস্থিত সংখ্যা এবং একটি নম্বর ইত্যাদি রাখার জন্য যথেষ্ট বুদ্ধিমান is

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

পরীক্ষার ক্ষেত্রে অনুপস্থিত অঙ্কটি একটি প্রশ্ন চিহ্ন দ্বারা প্রতিনিধিত্ব করা হয়

123? -> 3
?999 -> 0 or 9
?0023 -> 4
000?1 -> 8

2
আমরা কি আউটপুট দিতে পারি 0? [0, 9] (অ্যারে বা 2 সংখ্যার তালিকা) সম্পর্কে কী ?
ব্যবহারকারী 202729

1
ধরে নিচ্ছি 0 বা 9 এর পরিবর্তে আপনার অর্থ হ'ল, আমি মনে করি যে আমি এটির কোনও মান হতে পারে এটি নির্দেশ করে কোনও মান হতে চাই। ধন্যবাদ!
NK1406

3
কেবলমাত্র ?একটি সম্ভাব্য ইনপুট?
xnor

2
নেতৃস্থানীয় জিরো সমর্থন করা প্রয়োজন?
mbomb007

1
@ NK1406 আমি নেতৃস্থানীয় শূন্যগুলির প্রয়োজনের পরামর্শ দিচ্ছি না, কমপক্ষে কয়েকটি ভাষার জন্য এটি সমর্থন করার জন্য প্রয়োজনীয় অতিরিক্ত বাইটগুলি দেখতে পাচ্ছি।
এরিক আউটগল্ফার

উত্তর:



9

এলিস , 12 বাইট

/o&
\i@/+R9%

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

আউটপুট 0 0 বা 9 হতে পারে তবে ফলাফলগুলি।

ব্যাখ্যা

/   Switch to Ordinal mode.
i   Read all input as a string.
&   Fold the next operation over the characters of this strings.
/   Switch to Cardinal mode (not an operation).
+   Add. Implicitly converts each character to the integer value it represents
    and adds it to the top of the stack. The top of the stack is initially, implicitly
    zero. When the character is "?", it is simply discarded, which adds the top of
    the stack to another implicit zero beneath, so the "?" is effectively skipped.
R   Negate. Multiplies the sum by -1.
9%  Modulo 9. This gives the result.
\   Switch to Ordinal mode.
o   Implicitly convert the result to a string and print it.
@   Terminate the program.

&, মুছে ফেলা হতে পারে যেহেতু অঙ্কবাচক মোড সবচেয়ে 2 পূর্ণসংখ্যার মত আসল ইনপুটের ব্যাখ্যা করে।
নাইট্রডন

6

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

আউটপুট 9 0 বা 9 হতে পারে।

f=_=>9-([..._].reduce((a,b)=>a+~~b,0)%9)

2
পিপিসিজিতে আপনাকে স্বাগতম! প্রথম প্রথম পোস্ট!
Rɪᴋᴇʀ

2
আপনার গণনা করার দরকার নেই f=; বেনাম ফাংশন পুরোপুরি বৈধ।
শেগি

অপারেটর প্রাধান্যের কারণে
বাহ্যতম বন্ধনীগুলি

5

জাপট, 7 বাইট

কয়েকটি সমাধানের চেষ্টা করেছিলেন তবে সংক্ষিপ্ততমটি অন্য বেশিরভাগের মতোই ছিল তবে আমাদের ?শুরুতে প্রতিস্থাপনের দরকার নেই ।

অনুপস্থিত অঙ্ক হিসাবে যে কোনও সংখ্যাসূচক অক্ষর নিতে পারে। আউটপুটগুলি 0যখন সমাধান হতে পারে বা 9

¬x*J u9

চেষ্টা করে দেখুন


ব্যাখ্যা

স্ট্রিং এর অন্তর্নিহিত ইনপুট U¬স্বতন্ত্র অক্ষরের একটি অ্যারেতে বিভক্ত হয়, xকোনও অ-সংখ্যাযুক্ত উপাদান উপেক্ষা করে অ্যারে হ্রাস করে, *Jপ্রতিটি উপাদানকে -1 দ্বারা গুণিত u9করে ফলাফলের ইতিবাচক মডুলাস পায়।


5

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

+অনুপস্থিত অঙ্ক হিসাবে প্রত্যাশা করে । 0 বা 9 এর9 জন্য ফিরে আসে ।

s=>9-eval(9+s+9)%9

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



4

পাইথন 2 , 44 41 35 বাইট

রিয়াড -6 বাইট ধন্যবাদ

lambda n:-sum(ord(c)-3for c in n)%9

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

ব্যবহারকারী ]অনুপস্থিত অঙ্কের জন্য। অনুপস্থিত অঙ্ক 0 বা 9 হতে পারে তবে
ফলাফলগুলি 0


হুঁ, সমস্ত পরীক্ষা ক্ষেত্রেই আমি চেষ্টা আউটপুট 0একটি দ্ব্যর্থক ক্ষেত্রে, যা থেকে জ্ঞান করে তোলে জন্য9%9 == 0
ফুঁয়োফুঁয়ো

আপনি যদি (সি) -> অর্ড (সি) - 3 করেন তবে আপনার প্রয়োজন নেই যদি আপনি খারাপ চরিত্রের জন্য উপযুক্ত চরিত্র চয়ন করেন
RiaD

3

পাইথ, 9 7 বাইট

%_s-Qd9

সীমানা হিসাবে স্থান ব্যবহার করে এবং ফলাফল 0 বা 9 হতে পারলে 0 প্রদান করে।

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

ব্যাখ্যা

%_s-Qd9
   -Qd   Remove the space from the input.
  s      Convert it to an integer.
%_    9  Negate mod 9.

3

প্রোলোগ (এসডাব্লুআই) , 59 বাইট

0*[].
X*[H|T]:-between(0,9,H),U is mod(X+H,9),U*T.
+X:-0*X.

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

লজিক্যাল প্রোগ্রামিংয়ের জন্য ইয়ে!

ব্যাখ্যা

প্রথমে আমরা একটি শিকারী তৈরি করি *যা শূন্য এবং খালি তালিকার সাথে প্রয়োগ করা হয়। তালিকার সম্মুখভাগ 0 এবং 9 এর মধ্যে থাকে এবং যখন আমরা অগ্রণী সংখ্যাটি 9 যোগ করি তখন আমাদের শিকারিদাকেও ধারণ করে।

তারপরে আমরা সংজ্ঞায়িত +করি কেবল এটির সাথে ভবিষ্যদ্বাণী করা0 as the first argument. That is we want the digital sum to be a multiple of 9.

প্রোলোগ প্রকৃতপক্ষে আমাদের জন্য সমাধানগুলি সন্ধানের সমস্ত হিংস্র কাজ করে।


3

বেফুঞ্জ -৩৩ , ১ by বাইট

1+!_#@3#.--9%~:#

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

জেমস হোল্ডারেন্সের বেফুঞ্জ উত্তরটির একটি লাইন সংস্করণ যা দুটি বাইট করতে সক্ষম হয়। এটি মূলত কোডটিকে এক লাইনে সংকুচিত করে, দিকটি বিপরীত করে এবং বেফুঞ্জ লাইনের শেষে এড়িয়ে যায় না এই সুবিধাটি গ্রহণ করে। তিনি পরামর্শ দিয়েছিলেন আমি একটি ব্যাখ্যা সহ একটি পৃথক উত্তর পোস্ট করব। অনুপস্থিত অঙ্কটি উপস্থাপন করে কোডটি * নেয় এবং 0 বা 9 এর জন্য একটি 9 আউটপুট দেয়।

কিভাবে এটা কাজ করে

1+!_  3  --9% Initialises the pointer going right and initialises the digitsum with 3

1+!_         ~: Gets input and checks whether it is end of input (-1)

      3  - Subtract three from the input. 
           This turns the ASCII values of digits into their mod 9 equivalent ("0"(48)=>45(mod 9)=>0)

          -9% Subtract the value from the digitsum and mod it with 9
              This keeps the digitsum as a negative digit greater than -9
              Repeat this until the input ends

Now this is where it gets tricky.
At the end of input, the stack looks like this:
  -(Digitsum%9), Copy of EOF input (-1)
The pointer is moving left from the _
 +!_ Invert the -1 to get 0 and add it to the digitsum (does nothing but get rid of the -1)
1           %~ Adds 1 mod -1 (no input) = 0 to the stack
         --9 Subtracts 9 from 0, yielding -9 and subtracts that from the digitsum. 
             This makes the digitsum positive and equal to 9-(digitsum%9), our desired value
     @  . Finally, print and exit

* (ASCII মান 42) অনুপস্থিত চরিত্র হিসাবে বেছে নেওয়া হয়েছিল কারণ এটি 3 ডিজিটামের প্রাথমিক মানকে প্রতিরোধ করে।


আমি অবাক হয়েছি যে আপনি এখনও এগুলি বন্ধ করে বাইটগুলি ধরে রাখতে পারেন। সাবাশ!
জেমস হোল্ডারেন্স

2

ল্যাটেক্স, অনেকগুলি বাইট ( 1000 628 614)

\RequirePackage{expl3}
\ExplSyntaxOn
\tl_new:N \l_divnine_input_tl
\int_new:N \l_divnine_sum_int
\def \getnum {
  \typein [ \l_divnine_input_tl ] { Input\space a\space number }
  \tl_map_function:NN \l_divnine_input_tl \divnine_sum:n
  \int_set:Nn \l_tmpa_int { 9 - \int_mod:nn { \l_divnine_sum_int } { 9 } }
  \typeout
    { The\space missing\space digit\space is:\space
      \int_use:N \l_tmpa_int
      \int_compare:nNnT { \l_tmpa_int } = { 0 } { \space or\space 9 }
    }
}
\cs_new:Nn \divnine_sum:n {
  \regex_match:nnT { \d } { #1 } { \int_add:Nn \l_divnine_sum_int { #1 } }
}
\ExplSyntaxOff
\getnum
\stop

ল্যাটেক্স, অযোগ্য ( 348 334 বাইট)

\RequirePackage{expl3}\ExplSyntaxOn\int_new:N\1\tl_new:N\2\def\3{\typein[\2]{Input\space a\space number}\tl_map_function:NN\2\4\int_set:Nn\1{9-\int_mod:nn{\1}{9}}\typeout{The\space missing\space digit\space is:\space\int_use:N\1\int_compare:nNnT{\1}={0}{\space or\space9}}}\def\4#1{\regex_match:nnT{\d}{#1}{\int_add:Nn\1{#1}}}\3\stop

ল্যাটেক্স, 132 বাইট

\RequirePackage{expl3}\typein[\1].\newcount\2{\ExplSyntaxOn\int_gset:Nn\2{9-\int_mod:nn\19}}\typeout{\the\2 \ifnum\2=9or 0\fi}\stop

এই কোডটিতে কেবল স্থান অজানা অঙ্ক হিসাবে অনুমোদিত।


2

জে , 14 12 বাইট

-২ বাইটস @ বলসবুসিয়ারকে ধন্যবাদ thanks

9|9-[:+/"."0

আমি সত্যিই জানি না কেন 0 হিসাবে "."0ব্যাখ্যা ?করে তবে এটি আমার দোভাষী এবং টিআইওর উপর এমন করে তাই আমি এটি নিয়ে প্রশ্ন করব না। (আপডেট: কেন ব্যাখ্যা করার জন্য মন্তব্যগুলি দেখুন)।

এই পদ্ধতির খুব সহজেই অঙ্কগুলির যোগফল নিয়ে যায়, 9 থেকে বিয়োগ করে এটিকে অবহেলা করা হয় এবং এটি 9 মডিউল গ্রহণ করে।

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


1
যোগফল দেওয়ার আগে আপনাকে
উত্থিত

1
এছাড়াও, "। 'ব্যাখ্যা করে না?' 0 হিসাবে এটি এটি একটি খালি তালিকা হিসাবে ব্যাখ্যা করে। এটি উপযুক্ত করার জন্য জে ফিলার চরিত্রগুলি দিয়ে এটি প্যাড করে, যা এই ক্ষেত্রে (একটি সংখ্যার অ্যারে) 0 হয়
বোলস বুসিয়ের

2

জেলি , 11 9 6 বাইট

|0SN%9

ব্যাখ্যা

|0     # Read input while removing non-digits (question marks) and removing leading zeros
  S    # Sum the digits
   N   # Negate
    %9 # Mod by 9

0 এর আউটপুট মানে ফলাফল 0 বা 9 হতে পারে।

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

মিঃ এক্সকোডারকে 2 বাইট সংরক্ষণ করা হয়েছেমূল্যায়নের সময় প্রতিটি তাত্ক্ষণিক ( ) ব্যবহার করার সময়, সংখ্যাটিকে অঙ্কগুলিতে বিভক্ত করা বাড়াবাড়ি।

সংরক্ষিত 3 ধন্যবাদ বাইট ডেনিস । নেতৃস্থানীয় শূন্যগুলি এবং অ-সংখ্যাগুলি সরানোর সময় একটি সংখ্যা হিসাবে ইনপুটটিকে ম্যানুয়ালি পার্স করার পরিবর্তে 0 বা ইনপুটটি বিটওয়াইস বা ইনপুট করতে পারে।


9 বাইট । জেলি গল্ফিং স্বাগতম!
মিঃ এক্সকোডার

উত্তরটি 0 বা 9 হতে পারে এমন ক্ষেত্রে এটি হ্যান্ডেল করে না Also এছাড়াও, প্রকৃতপক্ষে, জেলিকে স্বাগতম। আমিও নতুন কিন্তু এখন পর্যন্ত খুব মজা লাগছে।
dylnan

@ অল্লানন এতে সম্বোধন করেছেন
পোকে

@ পোকে ওহ, কিছুই মনে নেই, প্রয়োজনটি পরিবর্তিত হয়েছে তা আমি দেখিনি
dylnan

|0পরিবর্তে কাজ করে fØDV€
ডেনিস


1

বেফুঞ্জ -৩৩ (পাইফুঞ্জ) , 22 21 বাইট

আমি বুঝতে পেরেছি যে ?অনুপস্থিত অঙ্কটি উপস্থাপন করার জন্য আমার ব্যবহার করার দরকার নেই , তাই আমি 48 টি বিয়োগের পরে 9 এর একাধিক একটি ব্যবহার করেছি: x
এটি আমাকে গল্ফ ছেড়ে দিতে দেয় 3+, তবে দৈর্ঘ্যের কারণে এটি কেবল আমাকে 1 বাইট সংরক্ষণ করেছিল শর্তসাপেক্ষে প্রথম লাইন :(


আমার Befunge-98 উত্তর একটি পোর্ট:
আরও 5 অর্ডার চেক করতে বাইট যদি আমরা ফাইলের শেষে, পৌঁছে গেছেন
1 এর আরও বেশি বাইট ধাক্কা 48 ( "0"বনাম '0),
সঙ্গে উত্তর প্রিন্ট করতে 1 এর আরও বেশি বাইট .@,
এবং আরো 1 টি বাইট, কারণ দ্বিতীয় লাইনটিতে
মোট আরও 8 টি বাইটের জন্য স্থান রয়েছে ।

~:0`!#|_"0"-+
 @.%9-<

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

0অনুপস্থিত অঙ্ক 0 বা 9 হতে পারে তবে ফলাফলগুলি ।

এটি নীচে বর্ণিত কারণের জন্য কেবল পাইফুঞ্জ ইন্টারপ্রেটারে কাজ করে।

ব্যাখ্যা

এই ব্যাখ্যার বেশিরভাগটি আমার বেফুঞ্জ -98 ব্যাখ্যা থেকে অনুলিপি করা হয়েছে , কারণ প্রোগ্রামটি এর সাথে খুব মিল। নির্লজ্জ প্লাগ

প্রোগ্রামের প্রথম লাইনে আমরা x সহ অংকগুলি যোগ করি, যা এটি ASCII মানের কারণে 72 হিসাবে বিবেচিত হয়। যাইহোক, আমরা 9 ​​দ্বারা মোড করার পরে যোগফলটি একই হবে, সুতরাং এটি অপ্রাসঙ্গিক।

~:0`!#|_"0"-+    THE FIRST LINE
~                Gets a character from input - If it is negative, we've reached EOF
 :0`!            Pushes 0 if the character is positive, 0 otherwise
     #|_         Goes to the next line if the value if 0
                     This also gets the negative value off the stack by using a |
        "0"-     Subtracts 48 to account for taking in ASCII values
            +    Adds this adjusted value to the sum

আমরা যদি মাত্র 9 দ্বারা পরিবর্তিত হয়ে থাকি তবে আমরা ভুল সংখ্যায় চলে যাব, কারণ আমরা চাই 9 - (sum % 9)। যাইহোক, আমরা এর চেয়ে আরও ভাল করতে পারি 9\-, যা 9 থেকে বাকী অংশগুলি বিয়োগ করবে: যদি আমরা 9 ​​দ্বারা পরিবর্তনের আগে যোগফলটিকে negativeণাত্মক করে তুলি তবে আমরা 9 - (sum % 9)কিছু সংখ্যক দোভাষীর সমতুল্য একটি ইতিবাচক ফলাফল পাব । এটিই আমাদের প্রয়োজন বেফুঞ্জ 93 এবং 98 উভয়ের জন্য পাইফুঞ্জ দোভাষী ব্যবহার করতে, কারণ এটি টিআইওর একমাত্র এটি one অন্যরা আমাদের 0 এবং 8 এর পরিবর্তে -8 এবং 8 এর মধ্যে একটি মান দেয়

 @.%9-<    THE SECOND LINE
      <    Redirects the IP onto this line
     -     Subtracts the sum from an implicit 0, making it negative
   %9      Mods the sum by 9
 @.        Prints the digit and exits

চমৎকার উত্তর! অতিরিক্ত চেক এড়াতে অনুপস্থিত অঙ্কের জন্য কাস্টম চরিত্রটি ব্যবহার করার বিষয়ে কখনও ভাবেননি। আমি আশা করি আপনি আপত্তি করবেন না যে আমি আমার আপডেট হওয়া উত্তরে সেই কৌশলটি চুরি করেছি - আমি দেখতে চেয়েছিলাম যে আমি একই ধারণাটি রেফারেন্স ইন্টারপ্রেটারে কাজ করতে পারি কিনা।
জেমস হোল্ডারেন্স

1

বেফুঞ্জ -98 (পাইফুঞ্জ) , 15 13 বাইট

আমি বুঝতে পেরেছি যে ?অনুপস্থিত অঙ্কটি উপস্থাপন করার জন্য আমার ব্যবহার করার দরকার নেই , তাই আমি 48 টি বিয়োগের পরে 9 এর একাধিক একটি ব্যবহার করেছি: x
এটি আমাকে গল্ফটি বন্ধ করে দেয় 3+

#v~'0-+
q>-9%

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

xঅনুপস্থিত অঙ্ক হিসাবে একটি ব্যবহার করে , কারণ এটির ASCII মান 48 দ্বারা বিয়োগের পরে 9 দ্বারা বিভাজ্য হয় (এবং এটি দুর্দান্ত কারণ এটি সাধারণত গণিতে ভেরিয়েবল হিসাবে ব্যবহৃত হয়)।

প্রস্থান কোডের মাধ্যমে আউটপুটগুলি (কারণ qএক বাইটের চেয়ে ছোট .@)
আউটপুটগুলি 0যদি অনুপস্থিত অঙ্ক 0 বা 9 হতে পারে।

এটি নীচে বর্ণিত কারণের জন্য কেবল পাইফুঞ্জ ইন্টারপ্রেটারে কাজ করে।

ব্যাখ্যা

প্রোগ্রামের প্রথম লাইনে আমরা সংখ্যাসমূহের যোগফলটি সংযুক্ত করি x, যা এএসসিআইআই মানটির কারণে 72 হিসাবে বিবেচিত হয়। যাইহোক, আমরা 9 ​​দ্বারা মোড করার পরে যোগফলটি একই হবে, সুতরাং এটি অপ্রাসঙ্গিক।

#v~'0-+    THE FIRST LINE
#v~        Pushes the next character from input, and goes to the second line on EOF
   '0-     Subtracts 48 to account for taking in ASCII values
      +    Adds this adjusted value to the sum

আমরা যদি মাত্র 9 দ্বারা পরিবর্তিত হয়ে থাকি তবে আমরা ভুল সংখ্যায় চলে যাব, কারণ আমরা চাই 9 - (sum % 9)। যাইহোক, আমরা এর চেয়ে আরও ভাল করতে পারি 9\-, যা 9 থেকে বাকী অংশগুলি বিয়োগ করবে: যদি আমরা 9 ​​দ্বারা পরিবর্তনের আগে যোগফলটিকে negativeণাত্মক করে তুলি তবে আমরা 9 - (sum % 9) কিছু সংখ্যক দোভাষীর সমতুল্য একটি ইতিবাচক ফলাফল পাব । এটিই আমাদের প্রয়োজন বেফুঞ্জ 93 এবং 98 উভয়ের জন্য পাইফুঞ্জ দোভাষী ব্যবহার করতে, কারণ এটি টিআইওর একমাত্র এটি one অন্যরা আমাদের 0 এবং 8 এর পরিবর্তে -8 এবং 8 এর মধ্যে একটি মান দেয়।

q>-9%    THE SECOND LINE
 >       Redirects the IP onto this line
  -      Subtracts the sum from an implicit 0, making it negative
   9%    Mods the sum by 9
q        Outputs via exit code, ending the program

1

রুবি , 22 বাইট

ব্যবহারগুলি '( 0"0" দ্বারা বিভাজ্য যে কোনও চরটি 0নিজেই সেগুলি করবে ) করবে।

একটি আউটপুট বা 0হয় বোঝায় ।09

p -(gets.sum+6*~/$/)%9

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

ব্যাখ্যা

p     # print after inspecting
  -(  # unary negative, for reversing result of modulus (a-b%a)
    gets.sum # ascii value of string
    + 6*~/$/ # add six for each size (in chars) of input, so "0" translates to 0
  )%9 # mod 9
      # find remainder after dividing 9
      # except it's inverted so it's remainder to add to divide 9

1

রুবি , 46 , 41 বাইট

-5 ইউনিহেড্রনকে ধন্যবাদ

->s{-s.chars.sum{|i|?<>i ? i.to_i : 0}%9}

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


১. আমাদের charsপরিবর্তে .split(//)২., '<'প্রতিস্থাপন করা যেতে পারে?<
ইউনিহীড্রন

আমি একই সরঞ্জামে (রুবি) একটি সংক্ষিপ্ত প্রোগ্রাম তৈরি করেছি যা এটির নিজস্ব জমা হিসাবে যথেষ্ট আলাদা (এটি ইনপুট এবং আউটপুট নিয়ে কাজ করে), আপনি এটি এখানে পেতে পারেন: কোডগলফ.স্ট্যাকেক্সেক্সঞ্জ
/

@ ইউনহেড্রন ধন্যবাদ, বিশ্বাস করতে পারি না যে আমি ভুলে গেছিchars
টম লাজার

1

বেফুঞ্জ -93, 28 27 19 18 বাইট

ক্রেডিট অবশ্যই মিস্টা ফিগিনসকে যেতে হবে , যার পাইফুঞ্জ উত্তর আমাকে দেখিয়েছে যে অনুপস্থিত অঙ্কের চরিত্রের জন্য আপনার বিশেষ চেকের দরকার নেই, যদি আপনি কেবল নিশ্চিত করে থাকেন যে ASCII মানটি নয়টির একাধিক।

জো কিংকে অতিরিক্ত ধন্যবাদ যিনি দেখিয়েছেন যে অক্ষরগুলিকে সম্পূর্ণরূপে তাদের সংখ্যাসূচক রূপান্তরিত করার দরকার নেই, এবং বেস 9 এর সাথে তুলনামূলকভাবে একটি মান পেতে কেবল 3 বিয়োগ করতে পারেন (এএসসিআইআই 0বিয়োগ 3 45, 9 এর একাধিক) ।

3_v#`0:~--
%9_@.+9

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

এটি কাজ করার জন্য, আপনার *অনুপস্থিত অঙ্কের জন্য চরিত্রটি ব্যবহার করা উচিত (এমন আরও কিছু রয়েছে যা কাজ করতে পারে তবে এটি সর্বোত্তম)।

9অনুপস্থিত অঙ্ক 0 বা 9 হতে পারে তবে ফলাফলগুলি ।

ব্যাখ্যা

3             Push 3 onto the stack.
 _            Since this is non-zero, drop the 3 and branch left.
3             Now executing right to left, push 3 again.
        --    Negate twice, leaving the value unchanged as our starting sum.

       ~      Now we start the main loop, reading a character from stdin.
    `0:       Duplicate and check if it's > 0, i.e. not end-of-stream.
 _ #          If so, continue to the left.
3        -    Subtract 3 to make the number relative to base 9.
        -     Then subtract it from the total, and repeat the loop.

  v           Once we reach the end of the input, we go down.
  _           Drop the EOF character from the stack and go left.
%9   +9       Mod the total with 9, and add 9.
   @.         Output the result and exit.

মূলত আমরা সমস্ত সংখ্যার যোগফল গণনা করছি, এবং প্রতি সংখ্যা 45 টিও (যা শেষ পর্যন্ত 9 দিয়ে মোড করার পরে বাতিল হয়ে যাবে)। এই যোগফলটি 3 (আমাদের শুরুতে মোট) থেকে বিয়োগ করা হয়, এবং অতিরিক্ত 39 টি অনুপস্থিত অঙ্কের (এএসসিআইআই *বিয়োগ তিন) দ্বারা বিয়োগ করা হয় । আবার 3 বিয়োগ 39 টি 9 এর একাধিক, সুতরাং আমরা 9 ​​দিয়ে মোড করলে এটি বাতিল হয়ে যায়।

সুতরাং শেষ পর্যন্ত আমরা সমস্ত সংখ্যার নেতিবাচক যোগফল গণনা করছি, 9 মডার 9, প্লাস 9, অর্থাৎ

9 - (digitsum % 9)

এবং এটি আমাদের অনুপস্থিত অঙ্ক দেয়।


-1 বাইট যদি আপনি 48 এর পরিবর্তে 3 টি বিয়োগ করেন তবে এর বেশিরভাগটি
জো কিং

@ জোকিং ধন্যবাদ! এটা কখনই ভাবিনি। করুণা আমাদের এখনও +9 প্রয়োজন, তবে এ থেকে মুক্তি পাওয়ার কোনও উপায় আমি দেখতে পাচ্ছি না।
জেমস হোল্ডারেন্স

এক লাইনে কমপ্রেস করে আরও একটি বাইট অপসারণ করতে পরিচালিত ! আমি এটিকে প্রতি প্রতিটি লুপ% 9 এ পরিবর্তন করেছি এবং তারপরে 9- কে মোটে 9 যোগ করার পথে পুনরায় ব্যবহার করি।
জো কিং

@ জোকিং আমি জানি এটি কেবল আরও একটি বাইট সংরক্ষণ করছে, তবে এটি দুর্দান্ত! এটি একটি নতুন উত্তর হিসাবে পোস্ট করা মূল্যবান। আপনি অবশ্যই আমার ভোট পাবেন, অন্য কিছু না হলে।
জেমস হোল্ডারেন্স

এটি পোস্ট ! একটি সর্বশেষ বাইট বন্ধ শেভ করার জন্য পরিচালিত! আমি মনে করি এটিই আমি শেষ করতে পারি
জো কিং

1

বেফুঞ্জ -98 (পাইফুঞ্জ) , 8 বাইট

#q~3--9%

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

প্রস্থান কোড মাধ্যমে আউটপুট। সঙ্গে মিসতাহ Figgin এর উত্তর , এটি শুধুমাত্র Pyfunge, যেখানে একটি ঋণাত্মক সংখ্যা mod 9 ইতিবাচক হয়ে সাথে কাজ করে। অনুপস্থিত অঙ্ক হিসাবে একটি এক্স ব্যবহার করে।


0

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

param($a)0..9|?{!(($a-replace'x',$_)%9)}

এটি অনলাইন চেষ্টা করুন! বা সমস্ত পরীক্ষার কেস যাচাই করুন

মত ইনপুট লাগে '123x'মধ্যে $a। ধারাটির সাথে মেলে এমন পূর্ণসংখ্যাগুলি বের করার জন্য (এখানে সংক্ষিপ্ত হিসাবে সংক্ষেপে ) একটি ব্যাপ্তি তৈরি 0করে 9এবং ব্যবহার করে। দফা লাগে , সঞ্চালিত একটি Regex প্রতিস্থাপন বর্তমান অঙ্ক সঙ্গে সঙ্গে গেলিক ভাষার 9 পায় । সুতরাং যদি 9 টি সমানভাবে ভাগ হয় তবে এটি শূন্য হবে। আমরা এর বুলিয়ান-নই, যা জিরো সত্যবাদী এবং অন্য সব কিছুকে মিথ্যা করে তোলে, যাতে ওহ-অবজেক্টের শর্তটি পূরণ হয়। সেই ফলাফলগুলি গুলি পাইপলাইনে রেখে গেছে এবং আউটপুট অন্তর্ভুক্ত।Where-Object|?$a-replacex$_%9



0

রেটিনা , 35 34 25 বাইট

যদি ?হতে পারে 0 or 9, ফলাফল হিসাবে প্রদর্শিত হয় 9

.
$*
1{9}

^
9$*;
+`;1

.

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

ব্যাখ্যা

.       Sum of the digits in unary + 1
$*
1{9}    Modulo 9

^       Prepend 9 semicolons, for subtracting
9$*;
+`;1    Subtract from 9

.       Back to decimal

আমি বিশ্বাস করি যে \dএইটিকে ন্যায্য .এবং নিম্নলিখিত পংক্তিতে রূপান্তর করা যেতে পারে $*
ক্রিটিকি লিথোস

আহ ঠিক. আমি ?যখন এটি লিখেছিলাম তখনো আমি এখনও মুছে ফেলিনি।
mbomb007



@ টোটালিহুমান আহ, হ্যাঁ আগের সংস্করণ থেকে আর একটি অবশেষ।
mbomb007


0

Tcl, 53 বাইট

puts [expr 9-([regsub -all (\\d)\\D? 0$argv +\\1])%9]

অন্যান্য উত্তরগুলির মতো এটি স্পষ্টভাবে "0 বা 9" না বলে সংক্ষিপ্ত করা হয়েছে।
পরিবর্তে, "9" এর ফলাফলটির অর্থ 0 বা 9 হয়।

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

ব্যাখ্যা

এটি বেশ সহজভাবে কাজ করে। এটি এতে নিয়মিত প্রকাশ করে:

  • যুক্তিকে পৃথক অঙ্কে বিভক্ত করুন
  • কোনও প্রশ্ন চিহ্ন (গুলি) অ-অঙ্ক (গুলি) অপসারণ
  • অতিরিক্ত সংকেত সহ অঙ্কগুলি ইন্টারলিভ করুন

এরপরে এটি চূড়ান্ত মানটি ১.৯ এ পৌঁছানোর জন্য 9 - (যোগফলের_ ডিজিটস 9 টি) মূল্যায়ন করে যা এটি তখন puts

নেতৃস্থানীয় 0 (ইন 0$argv) ইনপুটটিতে প্রথমে প্রশ্ন চিহ্ন আসার ক্ষেত্রে প্রয়োজন; রূপান্তরিত ক্রমের একটি শীর্ষস্থানীয় প্লাস সাইন কোনও সমস্যা নয় expr




0

ব্রেনফাক , 50 বাইট

+>,[---[<-[<<]>[<+++++++++<]>>-],]-[<+>-----]<---.

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

0 বা 9 এর জন্য একটি 9 প্রিন্ট করে মিস করা চরিত্রটি প্রতিনিধিত্ব করে:

কিভাবে এটা কাজ করে

Tape Format:
    0 Total Input 0

The total is represented as 9-digitSum%9

+>,[ Start loop with 1 as the total
    --- Subtract 3 from the inputted byte to make the value%9 equal to the digit
    [   While the input byte exists
      <-                 Decrement the total
      [<<]>[<+++++++++<] If the total is 0, reset it to 9
      >>-                Decrement the input byte
    ]
,] Continue loop until there is no input
-[<+>-----]<---. Add 48 to the total to convert the digit to the ascii value and output it

নিখোঁজ চরিত্রটি এমন একটি চরিত্রের হওয়া দরকার যা 9 এর 9 নং, +3 রয়েছে কারণ আমরা সাধারণ সংখ্যা থেকে 3 এবং মোট 1 হিসাবে প্রাথমিকের জন্য +1 বিয়োগ করি।

পার্শ্ব নোট হিসাবে , গল্ফিংয়ের জন্য কোডটিতে প্রচুর অদক্ষতা রয়েছে, যেহেতু প্রতিটি অঙ্কটি আমি একবারের পরিবর্তে ৪ টি বাদ দিয়ে 48 বার বাদ দিলে একবারে একবারের চেয়ে মোট 5 বার পুনরায় সেট করে।


0

> <> , 35 33 25 21 15 বাইট

এর একটি আউটপুট 0মানে ফলাফলের পারেন হতে পারে 0 বা 9

0i:&0(?n&3--9%!

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

হারিয়ে যাওয়া অঙ্কগুলি উপস্থাপন করে জো জোকে ধন্যবাদ 6 বাইট সংরক্ষণ করা Sa'


আপনি যদি এর 'পরিবর্তে কোনও অক্ষর ব্যবহার করেন তবে 15 বাইট?
জো কিং

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