2 পূর্ণসংখ্যার মধ্যকার গুণকে এরকম সংখ্যার যোগে আরও কমিয়ে আনা যায়
3 * 5 = 3 + 3 + 3 + 3 + 3 = 5 + 5 + 5
Exponentiation (উত্থাপন একটি ক্ষমতায় খ ) ও multiplications সিরিজের মধ্যে হ্রাস করা যেতে পারে:
5 ^ 3 = 5 * 5 * 5
অতএব, ক্ষুদ্রাকর্ষণটি সংখ্যার সংখ্যায় হ্রাস করা যেতে পারে, বহুগুণ প্রকাশ করে, তারপরে সংযোজনগুলির একটি সিরিজে। উদাহরণস্বরূপ, 5 ^ 3
(5 কিউবড) পুনরায় লেখা যেতে পারে
5 ^ 3 = 5 * 5 * 5
= (5 + 5 + 5 + 5 + 5) * 5
= (5 + 5 + 5 + 5 + 5) + (5 + 5 + 5 + 5 + 5) + (5 + 5 + 5 + 5 + 5) + (5 + 5 + 5 + 5 + 5) + (5 + 5 + 5 + 5 + 5)
= 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5
আপনার কাজটি হল, প্রদত্ত এক্সপ্রেশন, গুণ এবং সংযোজন নিয়ে একসাথে যুক্ত অভিব্যক্তিগুলি সংযোজনের সংক্ষিপ্ততম সিরিজে এটি হ্রাস করুন। "সংক্ষিপ্ততম" এক্সপ্রেশনটি সংক্ষিপ্ত সংখ্যক +
চিহ্ন সহ অভিব্যক্তি হিসাবে সংজ্ঞায়িত হয়েছে, এখনও মূল অভিব্যক্তিতে দুটি সংখ্যার মধ্যে একটি ব্যবহার করে। উদাহরণস্বরূপ, কম অভিব্যক্তি 10 * 2
হয় 10 + 10
।
ইনপুটটির সাথে জড়িত সংখ্যাগুলি সমস্ত ধনাত্মক পূর্ণসংখ্যার হবে, এবং অভিব্যক্তিটি অগ্রগতি নির্দেশ করার জন্য পূর্ণসংখ্যা এবং বন্ধনী ( ) সহ কেবল +
(সংযোজন), *
(গুণ) এবং ^
(ক্ষয়) হবে of()
আউটপুটটিতে কেবল ধনাত্মক পূর্ণসংখ্যা এবং +
চিহ্ন থাকতে হবে। আপনার হ্রাসের পৃথক পদক্ষেপগুলি আউটপুট করা উচিত নয়, কেবল চূড়ান্ত আউটপুট। আউটপুট কোনও সংখ্যার সমন্বিত নাও থাকতে পারে যা ইনপুটটিতে প্রদর্শিত হবে না। তবে আপনি এর পরিবর্তে যে কোনও 3 স্বতন্ত্র চিহ্ন ব্যবহার করতে পারেন +*^
তবে দয়া করে সেগুলি কী প্রতীক তা বলুন
ইনপুট এবং আউটপুট পৃথককারী স্পেসগুলি আপনার প্রোগ্রামগুলিতে ব্যবহৃত হতে পারে বা নাও হতে পারে, অর্থাত্ 3 * 5
হয় হয় 5 + 5 + 5
বা হিসাবে আউটপুট করা যায় 5+5+5
।
মনে রাখবেন যে বেশিরভাগ ক্ষেত্রে সংযোজন আসলে সম্পাদিত হয় না। সংক্ষিপ্তসারটি সম্পাদন করতে হবে এমন একমাত্র ক্ষেত্রে যখন আপনার মতো কিছু থাকে 5 ^ (1 + 2)
, সেই ক্ষেত্রে সংযোজন চালিয়ে যাওয়া প্রয়োজন -> 5 ^ 3 -> 5 * 5 * 5 -> ...
। পরীক্ষার কেস দেখুন # 4।
আপনার কোডে এমন অসম্পূর্ণ প্রকাশে আগত ইনপুটগুলি পরিচালনা করার দরকার নেই। উদাহরণস্বরূপ (2 + 2) * (4 + 1)
,। এখনও অবধি নির্ধারিত বিধিগুলির কারণে, লক্ষ্যটি উত্তর গণনা করা নয়, লক্ষ্যটি সংযোজনগুলিকে সহজ করা। সুতরাং এক্সপ্রেশনগুলি সমাধান করা বা কম করা (ক্রমবর্ধমান কোনটি সরল করতে, কোনটি ছেড়ে যাবে?) এর উপর নির্ভর করে ফলাফলটি ভিন্ন হতে পারে। আরেকটি অবৈধ উদাহরণ: ((3 + 2) ^ 2) ^ 3 -> ((3 + 2) * (3 + 2)) ^ 3 -> ???
।
এটি কোড-গল্ফ তাই সংক্ষিপ্ততম কোডের জয়
পরীক্ষার মামলা
Input => output
5 ^ 3 + 4 * 1 ^ 5 => 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 4
2 ^ 1 * 2 + 3 + 9 => 2 + 2 + 3 + 9
2 ^ 1 * (2 + 3) + 9 => 2 + 3 + 2 + 3 + 9
2 ^ (1 * (2 + 3)) + 9 => 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 9
10 + 3 * 2 + 33 ^ 2 => 10 + 3 + 3 + 33 + 33 + 33 + 33 + 33 + 33 + 33 + 33 + 33 + 33 + 33 + 33 + 33 + 33 + 33 + 33 + 33 + 33 + 33 + 33 + 33 + 33 + 33 + 33 + 33 + 33 + 33 + 33 + 33 + 33 + 33 + 33 + 33
100 * 3 => 100 + 100 + 100
2 ^ 1 + 2 ^ 1 + 2 ^ 2 + 8 ^ 1 => 2 + 2 + 2 + 2 + 8
(1 + 2 + 5 * 8 + 2 ^ 4) * 2 => 1 + 2 + 8 + 8 + 8 + 8 + 8 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 1 + 2 + 8 + 8 + 8 + 8 + 8 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2
using only one of the two numbers in the original expression.
তবে আসল অভিব্যক্তিতে দুটির বেশি সংখ্যা থাকতে পারে। কেন পাই না কেন 8 + 8
এটির জন্য বৈধ আউটপুট নয় 2 ^ 1 + 2 ^ 1 + 2 ^ 2 + 8 ^ 1
। এই প্রশ্নটি এখনও আমার কাছে অস্পষ্ট।
**
পরিবর্তে ব্যবহার করতে পারি^
?