পটভূমি:
বাস্তব জগতে মৌলিক সংযোজন এবং গুণনের মতো স্ট্যান্ডার্ড অপারেশন গণিত এর মতো কাজ করে:
12 + 123 = 135
এবং
12 * 123 = 1476
এটি আকর্ষণীয় এবং বিরক্তিকর নয়! অনেক স্কুল ইতিমধ্যে অনুশীলন, অনুশীলন, আনুষ্ঠানিক অ্যালগরিদমের অনুশীলন হিসাবে ব্যাখ্যা দিচ্ছে। এটি একটি কঠোর এবং বিরক্তিকর গাণিতিক ডায়েটকে বোঝায় এবং এই চ্যালেঞ্জের উদ্দেশ্যটি নয়। আমাদের প্রিয় সাইটে কিছু মজা খেলতে প্রস্তুত হন।
দুটি ধনাত্মক পূর্ণসংখ্যার সংখ্যা যুক্ত করার প্রক্রিয়াটি বিবেচনা করুন এবং তার ফলাফলের সমস্ত অঙ্ক আবার যুক্ত করুন। কেবলমাত্র একটি একক অঙ্ক না পাওয়া পর্যন্ত সংযোজনটির সাথে পুনরাবৃত্তি করা। উদাহরণ স্বরূপ:
- ফলাফল
12 + 123
135। - আমরা প্রাপ্ত 135 এর সমস্ত অঙ্ক যুক্ত করছি
1 + 3 + 5 = 9
।
এই পুনরাবৃত্ত সংযোজনে একক ডিজিটের মান 9 পেতে প্রয়োজনীয় পদক্ষেপের সংখ্যা 2 is
সংযোজন পূর্ববর্তী প্রক্রিয়া হিসাবে, দুটি ধনাত্মক পূর্ণসংখ্যার সংখ্যা একই গুণ অনুসরণ করে। এর ফলাফলের সমস্ত অঙ্কগুলিকে গুণিত করুন এবং তারপরে কেবল একটি একক সংখ্যা অবধি অবধি এই প্রক্রিয়াটি পুনরাবৃত্তি করুন। উপরের উদাহরণটি ধরুন:
- ফলাফল
12 * 123
1476। - আমরা প্রাপ্ত 1476 এর সমস্ত অঙ্ককে গুণিত করুন
1 * 4 * 7 * 6 = 168
। - আমরা প্রাপ্ত 168 এর সমস্ত সংখ্যাকে আবার গুণ করি
1 * 6 * 8 = 48
। - আমরা প্রাপ্ত 48 টির সমস্ত সংখ্যাকে আবার গুণ করি
4 * 8 = 32
। - আমরা প্রাপ্ত 32 টির সমস্ত সংখ্যার আবার একবারে গুণ করি
3 * 2 = 6
।
একক ডিজিটের মান 6 পেতে প্রয়োজনীয় পদক্ষেপের সংখ্যা এই পুনরাবৃত্তিটির গুণক 5।
এই চ্যালেঞ্জের পক্ষে এবং গণিতের স্বরলিপিগুলির কোনও অপব্যবহার এড়াতে, আমি এই দুটি ডামি স্বরলিপি প্রবর্তন করেছি: (+)
এবং (*)
, তবে আপনি নিজের পছন্দ মতো কোনও স্বরলিপি ব্যবহার করতে পারেন , যা নিম্নলিখিতগুলির মতো কাজ করে:
- একক মান পাওয়ার জন্য বারবার সংযোজন প্রক্রিয়াটির অপারেশন
12 (+) 123 = 9
। - একক মান পাওয়ার জন্য বারবার গুণিতকরণের ক্রিয়াকলাপটি হ'ল
12 (*) 123 = 6
।
চ্যালেঞ্জ:
চ্যালেঞ্জটি হ'ল হয় এমন একটি প্রোগ্রাম বা একটি ফাংশন লিখুন যা ব্যাকগ্রাউন্ড বিভাগে বর্ণিত হিসাবে উভয় ক্রিয়াকলাপ সম্পাদন করতে পারে : (+)
এবং (*)
।
ইনপুট:
প্রোগ্রাম বা ফাংশনের ইনপুটগুলি দুটি ধনাত্মক পূর্ণসংখ্যা এবং একটি অপারেশন হয় (+)
এবং হয় (*)
। ইনপুট ফর্ম্যাট প্রোগ্রামার একটি স্বেচ্ছাসেবী পছন্দ । আপনি ইনপুট ফর্ম্যাট করতে পারেন, উদাহরণস্বরূপ, a (+) b
বা F(a, (+), b)
আপনার ইচ্ছামত যে কোনও বিন্যাস করতে পারেন।
আউটপুট:
প্রোগ্রাম বা ফাংশনটির আউটপুটটিতে অবশ্যই অপারেশনের ফলাফল এবং আপনার ইচ্ছামত ফ্রিস্টাইল ফর্ম্যাট সহ প্রয়োজনীয় পদক্ষেপের সংখ্যা থাকতে হবে।
পরীক্ষার কেসগুলি (ইনপুট এবং আউটপুট ফর্ম্যাটটিকে উপেক্ষা করুন):
81 (+) 31 --> (4 ; 2)
351 (+) 14568 --> (6 ; 3)
21 (*) 111 --> (8 ; 3)
136 (*) 2356 --> (0 ; 2)
সাধারণ নিয়ম:
- এটি কোড-গল্ফ , তাই বাইটের মধ্যে সংক্ষিপ্ত উত্তরটি চ্যালেঞ্জটি জেতে।
এসোলেংগুলি আপনাকে নিয়মিত ভাষার সাথে উত্তর পোস্ট করতে নিরুৎসাহিত করবেন না। আপনার প্রোগ্রামিং ভাষার সাথে যতটা সম্ভব সংক্ষিপ্ত উত্তর সরবরাহ করে এই চ্যালেঞ্জটি উপভোগ করুন। আপনি যদি কোনও চৌকস উত্তর এবং স্পষ্ট ব্যাখ্যা পোস্ট করেন তবে আপনি যে প্রোগ্রামিং ভাষা ব্যবহার করেন না কেন আপনার উত্তর প্রশংসা করা হবে (অতএব উন্নতিগুলি)। - স্ট্যান্ডার্ড বিধিগুলি আপনার উত্তরের জন্য প্রযোজ্য , সুতরাং আপনাকে STDIN / STDOUT, ফাংশন / সঠিক প্যারামিটারগুলি সহ, সম্পূর্ণ প্রোগ্রামগুলি, ইত্যাদি ব্যবহার করার অনুমতি দেওয়া হবে The পছন্দটি আপনার is
- যদি সম্ভব হয় তবে আপনার প্রোগ্রামটি সঠিকভাবে বড় সংখ্যক পরিচালনা করতে পারে। যদি তা না হয় তবে তা ঠিক হয়ে যাবে।