শেষ অঙ্কের বড় সংখ্যা


12

সংখ্যা একটি প্রদত্ত তালিকার জন্য শেষ অঙ্ক এটি উদাহরণ:[এক্স1,এক্স2,এক্স3,,এক্সএন]এক্স1এক্স2এক্স3...এক্সএন

[3, 4, 2] == 1
[4, 3, 2] == 4
[4, 3, 1] == 4
[5, 3, 2] == 5   

কারণ ।3(42)=316=43046721

কারণ ।4(32)=49=262144

কারণ ।4(31)=43=64

কারণ ।5(32)=59=1953125

নিয়মাবলী:

এটি কোড গল্ফ, সুতরাং কয়েকটি বাইটের সাথে উত্তর জিতল।

যদি আপনার ভাষার পূর্ণসংখ্যার আকারের সীমা থাকে (উদাহরণস্বরূপ ) এন যথেষ্ট পরিমাণে ছোট হবে তবে যোগফলটি পূর্ণসংখ্যায় ফিট হবে।232-1

ইনপুট যে কোনও যুক্তিসঙ্গত ফর্ম (স্টিডিন, ফাইল, কমান্ড লাইন প্যারামিটার, পূর্ণসংখ্যা, স্ট্রিং ইত্যাদি) হতে পারে।

আউটপুট যে কোনও যুক্তিসঙ্গত ফর্ম (স্টাডাউট, ফাইল, গ্রাফিকাল ব্যবহারকারী উপাদান যা নম্বর প্রদর্শন করে ইত্যাদি) হতে পারে।

কোড ওয়ারে দেখেছি।


2
আমার একটি প্রশ্ন আছে: আপনার পোস্টে আপনি কেবল numberএস সম্পর্কে কথা বলবেন । আপনি এককভাবে ইতিবাচক পূর্ণসংখ্যা বলতে চান? এটিই আমার অনুভূত হয় যে এটি কীভাবে ব্যাখ্যা করা হয়েছিল।
জোনাথন ফ্রেচ

1
বিপরীতে ইনপুট গ্রহণ করা কি যুক্তিসঙ্গত? ইনপুট কি শূন্য হতে পারে?
নিডজেজেকোব

1
আমি মনে করি আপনি শর্তগুলির যোগফলের সীমাবদ্ধতার জন্য অভিপ্রায় রেখেছেন এবং এইভাবে এমন রুটিনগুলি যা প্রকৃত যোগফল গণনা করে তবে মোড এটি ব্যর্থ হওয়া উচিত। উদাহরণস্বরূপ ইনপুটটি [999999,213412499,34532599,4125159,53539,54256439,353259,4314319,5325329,1242149,142219,1243219,14149,1242149,124419,999999999]বৈধ এবং ফলাফল হওয়া উচিত 1যদি তাই হয় তবে এটিকে প্রশ্নে আরও স্পষ্ট করা দরকার কারণ আপনার উত্তরগুলি উত্তর দেয় না যা এটি সমাধান করে না (ইঙ্গিত - লুপটির modঅভ্যন্তরে সরান )। সম্ভবত কিছু উদাহরণ যুক্ত করুন যা এটি পরিষ্কার করে দেয়।
নিল স্লেটার

1
আসলে আমার উদাহরণ থেকে ফলাফল 9। এটি বাস্তবায়নের জন্য প্রয়োজনীয় ডিজিটাল হ্রাস স্কিমটি এই সমস্যাটির প্রকৃত উত্তরগুলির চেয়ে অনেক বেশি আকর্ষণীয়।
নিল স্লেটার

2
প্রিয় ওপি, আমাদের আরও পরীক্ষার মামলা দরকার need
নিডজেজেকব

উত্তর:


15

জাভাস্ক্রিপ্ট (ES7), 22 বাইট

সীমাবদ্ধ ।253-1

a=>eval(a.join`**`)%10

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


2
পৃথিবীতে কী, এই কাজ কেন ?!
কালেব জে

@ কোমালি_2: **জাভাস্ক্রিপ্টের এক্সপেনশনেশন অপারেটর। বাকিগুলি বেশ সোজা।
শেগি

2
@ কোমালি_2 a.join`**` সমান a.join(['**'])এবং পদ্ধতিটি দ্বারা ['**']জোর করা '**'হয় join
আর্নল্ড

1
আমি মনে করি যে ওপি মনস্থির করে যে সীমাটি মূল্যবোধের সমষ্টিতে রয়েছে, সেক্ষেত্রে এটি যেমন উত্থাপিত সমস্যাগুলি সমাধান করে না।
নীল স্লেটার

1
@ এজেফারাডে শেষে% 10 যখন 10 দ্বারা কোন সংখ্যা বিভাজক, বাকি (মডুলাস) সবসময় শেষের ডিজিটটি হবে, সুতরাং n % 10শেষ অঙ্ক ফিরে আসবেn
Skidsdev



9

এইচপি 49 জি আরপিএল, 36.5 বাইট

এটিকে অ্যাপ্রাক্স মোডে চালান (তবে প্রোগ্রামটি একেবারে মোডে প্রবেশ করুন)। প্রথম উপাদানটি স্ট্যাকের গভীরতম হিসাবে পূর্ণসংখ্যা বা বাস্তব হিসাবে স্ট্যাকের সাথে ইনপুট নেয়।

WHILE DEPTH 1 - REPEAT ^ END 10 MOD

এটি সোফিয়ার সমাধান হিসাবে স্ট্যাকের উপর সোজাভাবে exponentiates একটি মান বাকি না হওয়া পর্যন্ত, তারপরে শেষ সংখ্যাটি পেতে এটি 10 ​​মডে লাগে।

আমি গণনার জন্য অ্যাপ্রোক্স ব্যবহার করার কারণটি হল 0.0 ^ 0.0 = 1 (যখন তারা উভয়ই বাস্তব) তবে 0 ^ 0 =? (যখন তারা উভয়ই পূর্ণসংখ্যার হয়)। অ্যাপ্রাক্স রিয়েলগুলিতে সমস্ত পূর্ণসংখ্যাকে coerces, সুতরাং ইনপুটটি কোনওটির সাথেই ঠিক আছে। যাইহোক, আমি প্রোগ্রামটিতে প্রবেশের জন্য EXACT ব্যবহার করি কারণ 10 (পূর্ণসংখ্যা) ডিজিট বাই বাই ডিজিট সংরক্ষণ করা হয় এবং এটি 6.5 বাইট হয় তবে 10.0 (আসল) একটি সম্পূর্ণ আসল সংখ্যা হিসাবে সঞ্চিত হয় এবং এটি 10.5 বাইট। আমি আরপিএলের হ্রাস (STREAM নামে পরিচিত) ব্যবহারও এড়িয়ে চলেছি কারণ এটি একটি অতিরিক্ত প্রোগ্রাম অবজেক্টকে পরিচয় করে, যা ওভারহেডের 10 বাইট। আমার ইতিমধ্যে একটি আছে এবং অন্যটি চাই না।

এইচপি 49 জি রিয়েল (12 দশমিক সংখ্যা) এর নির্ভুলতায় সীমাবদ্ধ

-10 বাইট খালি তালিকার পরে -> 1 প্রয়োজনীয়তা সরানো হয়েছিল।

স্ট্যাকের ইনপুট নিয়ে -2 বাইট


1
আরে, আপনি কীভাবে বাইকাউন্ট গণনা করা যায় তা ব্যাখ্যা করতে পারেন? কেবল কৌতূহল যে কীভাবে ভাষা নীবল ব্যবহার করে ।
জংহওয়ান মিন

1
@ জংহওয়ানমিন এইচপি 49 জি 4-বিট প্রসেসর এবং বিসিডি গণিত ব্যবহার করে, কারণ এটি একটি ক্যালকুলেটর ulator স্থান বাঁচানোর জন্য অভ্যন্তরীণভাবে বেশিরভাগ কমান্ডগুলি তাদের উপস্থাপন করা রুটিনগুলিতে 2.5 বাইট পয়েন্টারে রূপান্তরিত হয়। ছোট সংখ্যা (0-9) এছাড়াও এইভাবে রূপান্তরিত হয়।
জেসন

1
শনি প্রসেসরটি আসলে কাজ করার জন্য বেশ মজাদার। একটি দীর্ঘ সময় আগে, আমি লিখেছি BurgerTime এই বন্দর এইচপি 48G (এক্স) জন্য (সমাবেশ)। এটি পরে 49G এ পোর্ট করা হয়েছিল । ভাল স্মৃতি!
আর্নাউল্ড

7

ডিসি , 17 15 বাইট

1[^z1<M]dsMxzA%

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

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

দুটি বাইট সংরক্ষণের জন্য ব্রাহ্মফ্লার ধন্যবাদ!


2
আপনি পরিবর্তন করে গলফ এক বাইট করতে পারেন 10%থেকে A%-, এবং স্ট্যাকের গভীরতা দুইবার চেক না করে আরো এক বাইট শুধু একটি করা 1: যেহেতু এন ^ 1 == এন চালানোর আগে স্ট্যাকের উপরে1[^z1<M]dsMxA%
brhfl

চমৎকার চিন্তা! Aদশমিক ইনপুট সেট করার সময় আমার কোনও ধারণা ছিল না ডিসি আমাকে আক্ষরিক হিসাবে ব্যবহার করতে দেবে। আপনাকে @ BRhfl ধন্যবাদ!
সোফিয়া ল্যাটারের

1
@ সোফিয়ালটেনার এই কৌশলটি সমস্ত ইনপুট ঘাঁটিগুলির জন্য কাজ করে: কোডগল্ফ.সটাকেক্সচেঞ্জ
ডিজিটাল ট্রমা

6

জে , 5 বাইট

-3 বাইট ধন্যবাদ কোলে!

10|^/

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


না 10|^/কাজ না?
কোলে

@ কোল অবশ্যই এটি কাজ করে, ধন্যবাদ!
গ্যালেন ইভানভ

1
অবশেষে, একটি চ্যালেঞ্জ যেখানে জেলকে পরাজিত করে জে!
জোনা

6

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

.«mθ

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

ব্যাখ্যা

.«     # fold
  m    # power
   θ   # take the last digit

1
যতদূর আমি সচেতন আছি, স্ট্যাক ভিত্তিক ভাষায় অনুমান করতে পারেন ইনপুট stdin বা বিকল্প পরিবর্তে স্ট্যাক উপস্থিত থাকলে, তাই ভালো কিছু এই 4 বাইট (অন্যথায়, শুধু স্থানের জন্য কাজ করা উচিত Eহেডারের মধ্যে)।
মিঃ এক্সকডার


1
আমি ভবিষ্যতের ব্যবহারের জন্য সর্বশেষ প্রতিশ্রুতিতে এই সমস্যাটি স্থির করেছি ।
আদনান

@ মিঃ এক্সকোডার: ঠিক আছে! আমার এটা মনে রাখা উচিত ছিল। অন্তত অন্তর্নিহিত ইনপুট সহ যদিও খুব কমই প্রয়োজন। ধন্যবাদ :)
Emigna

@ মিঃ এক্সকোডার উহ, আমি নিশ্চিত নই যে মেটা আসলে কী তা বোঝায়। 05AB1E তে একটি "ফাংশন" কী? আমি মনে করি এটি কেবল একটি স্ট্রিং হওয়া উচিত, যেহেতু আপনি এটিকে একটি ভেরিয়েবলের জন্য বরাদ্দ করতে পারেন, এবং এর সাথে ইভিএল-এড হতে পারে .V.«mθস্নিপেটের মতো দেখতে আরও বেশি লাগে, যেহেতু নিজে থেকে, আপনি এটিকে পরে পুনরায় ব্যবহারের জন্য কোনও ভেরিয়েবলের জন্য বরাদ্দ করতে পারবেন না। আচ্ছা, আদনান এখন ইস্যুটি ঠিক করে দিয়েছে, তবে এহ।
এরিক আউটগল্ফার

5

খাঁটি বাশ (কেবল অন্তর্নির্মিত - কোনও বাহ্যিক উপযোগ নেই), 21

echo $[${1//,/**}%10]

কমা-বিচ্ছিন্ন তালিকা হিসাবে কমান্ড লাইনে ইনপুট দেওয়া হয়।

বাশ পূর্ণসংখ্যাগুলি 64- এবং 32-বিট সংস্করণের জন্য স্বাভাবিক স্বাক্ষরিত পূর্ণসংখ্যার সীমা সাপেক্ষে।

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


2
^বিটওয়াইজ এক্সওআর, যে কারণে আপনি 5পরীক্ষার ক্ষেত্রে সঠিকটির পরিবর্তে বাইরে চলে যাচ্ছেন 1। আপনাকে স্যুইচ করতে একটি বাইট যুক্ত করতে হবে**
সোফিয়া লিনেকার

@ সোফিয়ালটনার হ্যাঁ - অবশ্যই - ভাল ক্যাচ! কীভাবে ^ক্রেস্ট হয়েছিল তা নিশ্চিত নয় - **আমার দেব চক্রের পূর্ববর্তী পুনরাবৃত্তিতে আমার ছিল ।
ডিজিটাল ট্রমা


4

পাইথন 2 এবং পাইথন 3 , 30 বাইট

lambda N:eval('**'.join(N))%10

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

ইনপুটটি সংখ্যাN আক্ষরিকের স্ট্রিং উপস্থাপনাগুলির উপরে একটি পুনরাবৃত্তিযোগ্য অবজেক্ট হিসাবে প্রত্যাশিত ।


4

রুবি, 41 47 বাইট

ইনপুট অ্যারেতে কোনও 0 টি পরিচালনা করার কারণে আকার বৃদ্ধি পায়, যার অতিরিক্ত বিবেচনার প্রয়োজন। ধন্যবাদrewritten

->a{a.reverse.inject{|t,n|n<2?n:n**(t%4+4)}%10}

এটি সমাধান করা হয়েছে কারণ আমি বিশ্বাস করি যে মূল উত্সটি উদ্দেশ্যযুক্ত, অর্থাত্ বৃহত্তর ক্ষুদ্রাকৃতির জন্য যা ভাষার স্থানীয় সংখ্যায় ফিট করে না - সীমাবদ্ধতা হ'ল অ্যারেটি যোগ হবে 2**32-1, অন্তর্বর্তী গণনাগুলিও ফিট করার গ্যারান্টিযুক্ত নয়। আসলে এটি কোড ওয়ার্সের চ্যালেঞ্জের মূল বিষয় বলে মনে হবে। যদিও রুবির নেটিভ পূর্ণসংখ্যার দিকগুলি বেশ বড় হতে পারে তবে নীচের দিকে প্রক্রিয়া করা নীচের উদাহরণটির সাথে শেষ পর্যন্ত% 10 দিয়ে তারা মোকাবেলা করতে পারে না

যেমন

ইনপুট: [999999,213412499,34532597,4125159,53539,54256439,353259,4314319,5325329,1242149,142219,1243219,14149,1242149,124419,999999999]

আউটপুট: 9


চিত্তাকর্ষক। একটি 4 আরো বাইট খরচ করে, আপনি এছাড়াও অনেক বেশী টাওয়ার সঙ্গে মানিয়ে করতে পারেন: প্রতিস্থাপন n**(t%4+4)সঙ্গে n**((t-1)%4+1)যাতে আপনি পেতে n**1পরিবর্তে n**5ইত্যাদি যশ পর্যবেক্ষণ যে কোনো পর্ব 4 একটা ভালো চক্র হবে জন্য।
পুনরায়

1
সিকোয়েন্সটিতে 0 টি থাকলে একটি সমস্যা রয়েছে
পুনরায়

@ লিখিত: ভাল জায়গা! আমি এটি সম্পর্কে চিন্তা করতে হবে। তত্ত্ব অনুসারে ক্রমটি প্রথম শূন্যের 2 ধাপ আগে শেষ করতে বাধ্য করা উচিত।
নিল স্লেটার

আসলে, তবে এর জন্য আরও অনেকগুলি কোডের প্রয়োজন হবে, ঠিক আরও 6 টি বাইট: n<2?n:আগে n**
পুনরায়




3

সি # (.নেট কোর) , 84 বাইট

a=>{int i=a.Length-1,j=a[i];for(;i-->0;)j=(int)System.Math.Pow(a[i],j);return j%10;}

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

  • -7 বাইট ধন্যবাদ @ রজনগুলকে

আপনি আশেপাশে ব্র্যাকারগুলি সরিয়ে aএবং হ্রাস ( for(var i=a.Lengt-1;i-->0;)) এর সাথে লুপের শর্তটি মিশ্রিত করে কিছু বাইট সংরক্ষণ করতে পারেন । তবে- usingস্টেটমেন্ট অবশ্যই তাকে বাইট কাউন্টে অন্তর্ভুক্ত করতে হবে।
রাজনগুল

@ রজনগুল: দুঃখিত, আমি সি # তে কোড-গল্ফে বেশ নতুন, এখন কি ঠিক আছে?
12:56 এ digEmAll

সমস্যা নেই. হ্যাঁ এখন ঠিক আছে।
রাজনগুল

1
ফলাফলটি ধরে রাখতে এবং অ্যারেতে সূচকের বেশিরভাগ অ্যাক্সেস সরিয়ে আপনি নতুন ভেরিয়েবল ব্যবহার করে আরও 3 টি বাইট সংরক্ষণ করতে পারেন: এটি অনলাইনে চেষ্টা করুন!
রাজনগুল

@ রজনগুল: দুর্দান্ত!
digEmAll

3

সি (জিসিসি) , 56

  • @ জোনাথানফ্রেচের জন্য 4 টি বাইট সংরক্ষণ করা হয়েছে

r()ম্যাক্রো থেকে পুনরাবৃত্তি ফাংশন ডাকা f- সাধারণ স্ট্যাক সীমাবদ্ধতা প্রযোজ্য।

R;r(int*n){R=pow(*n,n[1]?r(n+1):1);}
#define f(n)r(n)%10

শূন্য-সমাপ্ত ইন্ট অ্যারে হিসাবে ইনপুট দেওয়া। এটি এই অনুমানের অধীনে যে কোনও এক্স এন শূন্য নয়।

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



1
এছাড়াও, আপনি যদি ইউবি ব্যবহার করতে চান তবে আপনি গল্ফ r(int*n){return powকরতে পারেন R;r(int*n){R=pow
জোনাথন ফ্রেচ


3

জাপট -h , 7 বাইট

OvUqp)ì

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

ব্যাখ্যা:

OvUqp)ì
Ov   )    // Japt eval:
   q      //   Join
  U       //   Input with
    p     //   Power method
      ì   // Split into an array of numbers
-h        // Return the last number

অদ্ভুত, এটি আমার পক্ষে কাজ করবে না।
শেগি


@ শেগি : পি
অলিভার

আহা, জাইসিসের পক্ষে! : \ এটি আরও বেশিবার ঘটে থাকে!
শেগি

3

জাপট -h , 7 6 বাইট

যদি ইনপুটটিকে বিপরীত ক্রমে নেওয়া যায় তবে প্রথম অক্ষরটি সরানো যেতে পারে।

সীমাবদ্ধ 2**53-1

Ôr!p ì

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


ব্যাখ্যা

Ô          :Reverse the array
 r         :Reduce by
  !p       :  Raising the current element to the power of the current total, initially the first element
     ì     :Split to an array of digits
           :Implicitly output the last element

আমি পতাকা ছাড়াই ঠিক একই উত্তর পেয়েছি তাই এটি আপাতত সর্বোত্তম উপায়ের মতো দেখায়।
নিট

@ নিট: এটি নিশ্চিত হওয়া অবধি আমরা বিপরীতে ইনপুট নিতে পারি :)
শেগি

@ অলিভার হ্যাঁ, তবে আপনি এখনও একটি পতাকা ব্যবহার করছেন। ব্যক্তিগতভাবে আমি মনে করি পতাকা ছাড়াই বাইট গণনা সবচেয়ে সঠিক স্কোরিং ফলাফল।
নিট

@ নিট একটি পতাকা কি মেটা sensকমত্য দ্বারা 3 বাইট যুক্ত করা উচিত?
LegionMammal978




2

এক্সেল ভিবিএ, 60 বাইট

একটি বেনামে VBE অবিলম্বে উইন্ডো ফাংশন যা পরিসীমা থেকে ইনপুট নেয় [A1:XFD1]

s=1:For i=-[Count(1:1)]To-1:s=Cells(1,-i)^s:Next:?Right(s,1)



2

পাইথন 3 , 55 বাইট

p=lambda l,i=-1:not l or f'{l[0]**int(p(l[1:],0))}'[i:] 

পুরানো সংস্করণ

p=lambda l,i=-1:len(l)and f'{l[0]**int(p(l[1:],0))}'[i:]or 1    (60 bytes)


তা কি হবে না p=lambda...? পাইথন রিকার্সিভ বেনামে ল্যাম্বডাস পরিচালনা করতে পারে না, সুতরাং আপনার ফাংশনটির নামকরণের প্রয়োজন হলে এটি আপনার সমাধানের অংশ হওয়া দরকার এবং কোড-গল্ফ চ্যালেঞ্জগুলির জন্য নামটি আপনার বাইট গণনার দিকে গুনে।
মাইপেটলিয়ন


2

ব্রেন-ফ্লাক , 161 বাইট

এর জন্য +1 অন্তর্ভুক্ত -r

([][()]){({}[()]<({}<(({}))>[()]){({}<(({})<({}<>)({<({}[()])><>({})<>}{}<><{}>)>)>[()])}{}{}>)}{}({}((()()()()()){})(<>))<>{(({})){({}[()])<>}{}}{}<>([{}()]{})

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

উদাহরণ [3, 4, 2] 60 সেকেন্ডের বেশি সময় নেয়, তাই টিআইও লিঙ্কটি ব্যবহার করে [4, 3, 2]

-rযদি ইনপুট 160 একটি বাইট গণনা জন্য বিপরীত ক্রম গ্রহণ করা যেতে পারে সরানো হতে পারে।

# Push stack size -1
([][()])

# While there are 2 numbers on the stack
{({}[()]<

    # Duplicate the second number on the stack (we're multiplying this number by itself)
    ({}<(({}))>[()])

    # For 0 .. TOS
    {({}<

        # Copy TOS
        (({})<

        # Multiple Top 2 numbers
        ({}<>)({<({}[()])><>({})<>}{}<><{}>)

        # Paste the old TOS
        >)

    # End for (and clean up a little)
    >[()])}{}{}

# End While (and clean up)
>)}{}

# Mod 10
({}((()()()()()){})(<>))<>{(({})){({}[()])<>}{}}{}<>([{}()]{})


2

জেড 80 গল্ফ , 36 বাইট

00000000: cd03 80f5 30fa f1f1 57f1 280d 4f41 15af  ....0...W.(.OA..
00000010: 8110 fd47 1520 f818 ef7a d60a 30fc c60a  ...G. ...z..0...
00000020: cd00 8076                                ...v

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

নিষ্ঠুর শক্তি পরীক্ষা জোতা

কাঁচা বাইট হিসাবে ইনপুট নেয়। 2 ** 8-1 এ সীমাবদ্ধ।

ব্যাখ্যা

input:
    call $8003    ;      the input bytes
    push af       ; push                 on the stack
    jr nc, input  ;                                   until EOF
    pop af        ; the last byte is going to be pushed twice
    pop af
outer:
    ld d, a       ; d = exponentiation loop counter, aka the exponent
    pop af        ; pop the new base off the stack
    jr z, output  ; The flags are being pushed and popped together with the
                  ; accumulator. Since the Z flag starts as unset and no
                  ; instruction in the input loop modifies it, the Z flag is
                  ; going to be unset as long as there is input, so the jump
                  ; won't be taken. After input is depleted, a controlled stack
                  ; underflow will occur. Since SP starts at 0, the flags
                  ; register will be set to the $cd byte from the very beginning
                  ; of the program. The bit corresponding to the Z flag happens
                  ; to be set in that byte, so the main loop will stop executing
    ld c, a       ; C = current base
    ld b, c       ; B = partial product of the exponentiation loop
    dec d         ; if the exponent is 2, the loop should only execute once, so
                  ; decrement it to adjust that
pow:
    xor a         ; the multiplication loop sets A to B*C and zeroes B in the
mul:              ; process, since it's used as the loop counter
    add c         ; it's definitely not the fastest multiplication algorithm,
    djnz mul      ; but it is the smallest
    ld b, a       ; save the multiplication result as the partial product
    dec d         ; jump back to make the next iteration of either
    jr nz, pow    ; the exponentiation loop or the main loop, adjusting the
    jr outer      ; loop counter in the process
output:           ; after all input is processed, we jump here. We've prepared
    ld a, d       ; to use the result as the next exponent, so copy it back to A
mod:              ; simple modulo algorithm:
    sub 10        ;            subtract ten
    jr nc, mod    ; repeatedly              until you underflow,
    add 10        ; then undo the last subtraction by adding ten
    call $8000    ; output the result
    halt          ; and exit

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