আপার ডিভোড গণনা করুন


13

কার্য

প্রদত্ত দুটি ধনাত্মক পূর্ণসংখ্যা (divid য় এবং divis রাঃ) নিরূপণ কুই uotient এবং emainder।
সাধারণত এটি e = o*q+rকোথায় q*o<=eএবং হিসাবে গণনা করা হবে 0<=r<o
এই চ্যালেঞ্জের জন্য এটি এখনও e = o*q+rকিন্তু q*o>=eএবং -o<r<=0
উদাহরণস্বরূপ e=20এবং o=3, সাধারণত এটি হবে 20/3 -> 20=3*6+2, যেহেতু 18<=20এবং 0<=2<3। এখানে এটা হতে হবে 20/3 -> 20=3*7-1যেখানে 21>=20এবং-3<-1<=0

পরীক্ষার কেস

Input -> Output
20, 3 -> 7, -1
10, 5 -> 2, 0
7, 20 -> 1, -13
100, 13 -> 8, -4

আপনার হ্যান্ডেল করার দরকার নেই o=0


3
এটি নিয়মিত ডিভোডের তুচ্ছ রূপ হিসাবে পরিচিত on
নিল

ডেটা সঞ্চয় করার জন্য স্বাক্ষরবিহীন বাইটগুলি ব্যবহার করে বা উপচে পড়া অনুমান করে এমন ভাষার জন্য rবাস্তবের অবহেলা হিসাবে আউটপুট গ্রহণযোগ্য r? ( -11/ 255)
ঊরীয়েল

@ উরিল হ্যাঁ, তবে উত্তরে এই সম্পর্কে একটি নোট যুক্ত করুন
রড

উত্তর:


8

পাইথন 3 , 39 26 বাইট

মার্টিন ইন্ডার 13 বাইট সংরক্ষণ করেছেন

lambda x,y:(-(x//-y),x%-y)

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

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

lambda x,y:(-(x/-y),x%-y)

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


আমি মনে করি আপনি কেবলমাত্র x%-yবাকীটি পেতে পারেন ।
মার্টিন এন্ডার

আসলে, কেন পুরো পথে চলবে না ...(-(x//-y),x%-y)
মার্টিন ইন্ডার

@ মার্টিন ইন্ডার থ্যাটস সত্যিই ভাল
হলভার্ড হুমেল

@ মিঃ এক্সকোডার উভয়ই অন্তর্ভুক্ত করেছেন
হলভার্ড হুমেল

8

জেলি , 3 বাইট

NdN

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

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

ডিভোডকে আবার গালাগালি করছে \ o /। দেখ মা 'ইউনিকোড নেই!

এনডিএন - সম্পূর্ণ প্রোগ্রাম / ডায়াডিক চেইন। | উদাহরণ: 7, 20

এন - প্রথম ইনপুট নেগেট করুন। | -7
 d - দ্বিতীয় দ্বারা Divmod। | [-1, 13]
  এন - আবার প্রত্যেককে নেগেট করুন। | [1, -13]


5

গণিত, 21 বাইট

{s=⌈#/#2⌉,#-#2s}&

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


আপনি কি একটি ব্যাখ্যা যোগ করতে পারেন, দয়া করে?
রড

2
@ রড ⌈#/#2⌉তাদের বিভাগের সিলিং গণনা করে এটি একটি চলকতে সঞ্চয় করে sএবং তারপরে আর্গুমেন্ট 1 থেকে 2 * টি বিয়োগ করে দেয়
মিঃ এক্সকডার

1
@ মিঃ এক্সকোডার আপনি দ্রুত!
J42161217

5

05 এ বি 1 ই , 4 বাইট

(s‰(

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

5 বাইট

(‰ćÄJ

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

তারা কিভাবে কাজ করে

পাইথনের মডিউল গালাগালি! \ ণ /

(গুলি | (| সম্পূর্ণ প্রোগ্রাম। A এবং B এর দুটি ইনপুট হোক। উদাহরণ: 100, 13।

(| গণনা -এ। | -100)
 s | অদলবদল (এই ক্ষেত্রে স্ট্যাকটি বিপরীত করুন)। | 13, -100
  ‰ | Divmod। | [-8, 4]
   (| Gণাত্মক (প্রতিটি -1 দ্বারা মূলত মূলত গুন) | | [8, -4]

-------------------------------------------------- -

(‰ ćÄJ | সম্পূর্ণ প্রোগ্রাম। বিপরীত ক্রমে ইনপুট নেয়।

(| নেতিবাচক। পুশ -A)
 ‰ | Divmod
  ć | মাথা বের করা ডিভোমড পুশ করুন (স্ট্যাকটি তৈরি করুন [ভাগফল, [অবশিষ্ট]]।
   Ä | পরম মান (ভাগফলের উপর চালিত)।
    জ | স্ট্যাক যোগ দিন।

আহা হ্যাঁ, ভুলে গেছেন যে ডিভোডটি নেতিবাচক সংখ্যার সাথে কাজ করে :)
এমিগানা

এবং এছাড়াও, এটি নতুন কার্যকারিতা Jতাই না ?. এর আগে কখনও দেখিনি। অবশ্যই কার্যকর হতে পারে।
Emigna

@ এমিগনা এটি যোগদান হিসাবে বর্ণনা করা হয় পুশ '' .জাইন (ক) যদি একটি তালিকা থাকে; অন্যটি, ধাক্কা ''। জয়ন (স্ট্যাক) । আমি মনে করি এটি নতুন কার্যকারিতা, যদিও আমি এর Jআগে কখনও ব্যবহার করি নি: পি
মিঃ এক্সকোডার

এটা অবশ্যই নতুন। আগস্ট থেকে আমার স্থানীয় সংস্করণে চেষ্টা করা এবং 5)6দেয় ['5']6:)
Emigna

4

এলিস , 15 বাইট

/O.
\io/R%e,R:R

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

ব্যাখ্যা

রুবির পূর্ণসংখ্যা বিভাগ এবং মডুলো (যার উপরে অ্যালিসের প্রয়োগ করা হয়) এমনভাবে সংজ্ঞায়িত করা হয় যে ইতিমধ্যে একটি নেতিবাচক বিভাজক ব্যবহার করে আমরা যা চান তা করে। আমরা যদি বিভাজকটিকে অবহেলা করি তবে আমরা স্বয়ংক্রিয়ভাবে সঠিক মডুলো পাই এবং আমরা আমাদের চাই যা ভাগফলটি বিয়োগ করব। সুতরাং এটি সমাধানের সবচেয়ে সহজ উপায় হ'ল একসংখ্যক সংখ্যাকে উপেক্ষা করে:

/   Switch to Ordinal mode.
i   Read all input as a string "e o".
.   Duplicate the string.
/   Switch to Cardinal mode.
R   Implicitly convert the top string to the two integer values it
    contains and negate o.
%   Compute e%-o.
e,  Swap the remainder with the other copy of the input string. We can't
    use the usual ~ for swapping because that would convert the string 
    to the two numbers first and we'd swap e%-o in between e and o instead
    of to the bottom of the string.
R   Negate o again.
:   Compute e/-o.
R   Negate the result again.
\   Switch to Ordinal mode.
O   Output -(e/-o) with a trailing linefeed.
o   Output e%-o.

    The code now bounces through the code for a while, not doing much except
    printing a trailing linefeed when hitting O again. Eventually, the IP
    reaches : and attempts a division by zero which terminates the program.


3

জুলিয়া , 18 বাইট

x$y=.-fldmod(-x,y)

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

.-এটি উপাদান অনুসারে প্রত্যাখ্যান, এবং fldmodমেঝে বিচ্ছেদ এবং এটির সাথে সম্পর্কিত অবশিষ্টাংশের ফলাফলের তৈরি একটি ফাংশন প্রদান করে।



2

জে , 16 বাইট

([-]*a),~a=.>.@%

এটি মূলত জেনিতে জেনি_ম্যাথির ম্যাথমেটিক সমাধান পুনরায় লিখিত is

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

a=.>.@% বাম এবং ডান আর্গুমেন্টগুলির বিভাগের সিলিং সন্ধান করে এবং এটিকে ভেরিয়েবল এ সংরক্ষণ করে

,~ সংলগ্ন (বিপরীত)

([-]*a) বাম আর্গুমেন্ট থেকে একটি * ডান যুক্তি বিয়োগ করে

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



2

কমন লিস্প, 7 বাইট

অন্তর্নির্মিত ফাংশনটি ceilingদুটি মান দেয়: ভাগফলের সিলিং এবং বাকীটি মিলবে:

$ clisp -q
[1]> (ceiling 20 7)
3 ;
-1

2

জাভাস্ক্রিপ্ট (ES6), 37 31 29 27 25 বাইট

সংরক্ষিত 2 বাইট @
রড ধন্যবাদ 2 বাইট সংরক্ষণ করুন @ ইটিআর প্রডাকশনগুলিতে ধন্যবাদ

বাক্য গঠন সিনট্যাক্সে ইনপুট নেয়। রিটার্নস [কুই, R]

a=>b=>[q=~-a/b+1|0,a-q*b]

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


আপনি সম্ভবত q=(a+b-1)/b+|0পরিবর্তে করতে পারেনq=a/b+.9|0
রড

@ এথ প্রডাকশনগুলি একটি পরিকল্পনার মতো মনে হচ্ছে। ;)
আর্নল্ড


1

4 , 55 50 বাইট

3.711712114001231311141130013513213131211513115154

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

ভাষাটি বাইট ইনপুট এবং আউটপুট ব্যবহার করে ওপি মন্তব্য দ্বারা বৈধ বলে বিবেচিত 10হওয়ায় এটি প্রত্যাখ্যান ( পরিবর্তে -10) দ্বারা অনুস্মারকটির প্রতিনিধিত্ব করে ।








0

SNOBOL4 (CSNOBOL4) , 124 123 105 বাইট

 E =INPUT
 O =INPUT
 Q =E / O
 R =E - Q * O
 EQ(0,R) :S(A)
 R =R - O
 Q =Q + 1
A OUTPUT =Q
 OUTPUT =R
END

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

ইনপুট হিসেবে লাগে E, তারপর O, একটি newline এবং কপি করে প্রিন্ট আউট দ্বারা পৃথক Q, তারপর R, একটি newline দ্বারা পৃথক।


0

টিএক্সআর: 8 বাইট

অন্তর্নির্মিত ফাংশন ceil-rem। যেমন (ceil-rem 20 7)ফলন (7 -1)



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