পটভূমি
এই চ্যালেঞ্জটি এই ওয়েবসাইটটি দ্বারা অনুপ্রাণিত হয়েছে , যা নিম্নলিখিত চিত্রটি প্রকাশ করেছে:
এই চিত্রটি আমাদের দেখায় যে 250 বছরের নিচে দীর্ঘতম রোমান সংখ্যার প্রকাশটি 188 এর মত, যা প্রকাশের জন্য 9 টি সংখ্যা প্রয়োজন।
চ্যালেঞ্জ
মান সবচেয়ে রোমান সংখ্যা প্রকাশ করার জন্য ব্যবহৃত প্রতীক নিম্নলিখিত হয়: { I
, V
, X
, L
, C
, D
, M
}, যেখানে অক্ষর 'সাংখ্যিক মান M
= 1000, D
= 500, C
= 100, L
= 50, X
= 10, V
= 5, I
= 1।
এই প্রতিদ্বন্দ্বিতা ক্ষেত্রে, আপনার লক্ষ্য, হয় একটি ধনাত্মক পূর্ণসংখ্যা দেওয়া এন বৈধ রোমান সংখ্যা উপস্থাপনা যে concatenating মাধ্যমে গঠিত হতে পারে সংখ্যা গনা, এন মান চিহ্ন।
তারপরে, আপনার প্রোগ্রাম অবশ্যই এই গণনার ফলাফল আউটপুট!
ইনপুট : একটি ধনাত্মক পূর্ণসংখ্যা n ।
আউটপুট : দৈর্ঘ্য বৈধ রোমান সংখ্যা এক্সপ্রেশন সংখ্যা এন ।
রোমান অঙ্কের এক্সপ্রেশনগুলির জন্য বিধি
রোমান অঙ্কগুলিতে মূলত কেবল "সংযোজক" জুটি ছিল, যার অর্থ হল অঙ্কগুলি সর্বদা অবতরণ ক্রমে লেখা হত, এবং সমস্ত সংখ্যার মানগুলির যোগফল ছিল সংখ্যার মান।
পরবর্তীতে, বিয়োগমূলক জোড়, ছোট থেকে বৃহত্তর থেকে বিয়োগ করার জন্য একটি ছোট সংখ্যার সামনে রাখার ব্যবহার রোমান সংখ্যার এক্সপ্রেশনগুলি সংক্ষিপ্ত করে তোলার পক্ষে সাধারণ হয়ে ওঠে। হ্রাসমূলক জোড়া শৃঙ্খলিত করা যাবে না, নিম্নলিখিত অবৈধ এক্সপ্রেশনে মত: IXL
।
অ্যাডিটিভ এবং সাবটেক্টিভ পেয়ারিংয়ের জন্য নিম্নলিখিত আধুনিক নিয়মগুলি রয়েছে।
- বিয়োগফলের জুটির অংশে কেবলমাত্র একটি, আই, এক্স এবং সি ব্যবহার করে নেওয়া যেতে পারে n
- আমাকে কেবল একটি বিয়োগফল জুটিতে ভি বা এক্স এর আগে রাখা যেতে পারে।
- এক্সকে কেবল বিয়োগফলের জুটিতে এল বা সি এর আগে রাখা যেতে পারে।
- বি কেবল একটি বিয়োগক্ষত জুটিতে কেবল ডি বা এম এর আগে স্থাপন করা যেতে পারে।
- বিয়োগফল জোড়া ছাড়া অন্য সংখ্যাগুলি অবশ্যই অবতরণ ক্রমে থাকতে হবে (এর অর্থ যদি আপনি প্রতিটি বিয়োগকারক জোড়ার শীর্ষস্থানীয় অঙ্কটি বাদ দেন তবে অঙ্কগুলি অবতরণ ক্রমে হবে)।
- এম, সি এবং এক্স ছোট সংখ্যার দ্বারা সমান বা অতিক্রম করা যাবে না।
- ডি, এল এবং ভি প্রতিটি কেবল একবারে উপস্থিত হতে পারে।
- কেবল এম 4 বা তার বেশি বার পুনরাবৃত্তি করা যেতে পারে।
আরও নোট
আমরা বার স্বরলিপি ব্যবহার করব না ; বরং আমরা যে কোনও সংখ্যা প্রকাশের জন্য আরও এম এস যুক্ত করব ।
এগুলি কেবলমাত্র আমাদের রোমান সংখ্যার জন্য অনুসরণ করব rules এর অর্থ হ'ল বিজোড় ভাবগুলি যেমন
IVI
আমাদের সিস্টেমে বৈধ হিসাবে বিবেচিত হবে।এছাড়াও মনে রাখবেন যে আমরা সংখ্যার সংখ্যা গণনা করছি না যার দৈর্ঘ্য n এর এক্সপ্রেশন রয়েছে কারণ কিছু সংখ্যার একাধিক এক্সপ্রেশন রয়েছে। পরিবর্তে, আমরা একমাত্র বৈধ এক্সপ্রেশন সংখ্যা গণনা করা হয়।
পরীক্ষার মামলা
1
→ 7
2
→ 31
3
→ 105
আমি উপরেরটি হাত দ্বারা চেক করেছি, সুতরাং দয়া করে পরীক্ষার কেসগুলি দ্বিগুণ করে নিশ্চিত করুন, এবং আপনি যদি পারেন তবে আরও যোগ করুন!
বিজয়ী মানদণ্ড
এটি একটি কোড-গল্ফ চ্যালেঞ্জ, তাই মজা করুন! আমি কেবল এমন সমাধান গ্রহণ করব যা 1 থেকে 9 এর মধ্যে কমপক্ষে ইনপুটগুলি পরিচালনা করতে পারে!
সম্পাদন করা
কমেন্টারদের অনুরোধ অনুসারে, নীচে খুঁজুন বা এই পেস্টবিন লিঙ্কে, 105 টি কম্বোস আমি n = 3 এর জন্য গণনা করেছি
III IVI IXI IXV IXX VII XII XIX XVI XXXXXX XX XL XLV XLX XCI XCV XCX XCL XC LII LIX LVI LXI LXV LXX CIC CDC CCC CCC CCC CCC CCC CCC CCC CCC CCC CCC CCC CCC CCC CCC CCC CCC CCC CCC CCC CCC CCC CCC CCC CCC CCC CCC CCC CCC CCC CCC CCC CCC CCC CCC CCC CCC CCC CCC সিএমআই সিএমভি সিএমএক্স সিএমএল সিএমসি সিএমডি সিএমএম ডিআইআই ডিআইআইএক্স ডিভিআই ডিএক্সআই ডিএক্সভি ডিএক্সএক্স ডিএক্সএল ডিএলসি ডিএলভি ডিএলএক্স ডিসিভি ডিসিভি ডিসিএক্সএল ডিসি ডিসি এমআইআই এমআইএক্স এমভিআই এমএক্সভি এমএক্সএক্স এমসিএল এমসিএম এমসিএম এমসিএম এমসিএম এমসিএম এমসিএম এমসিএম এমসিএম এমসিএম এমসিএম এমসিএম এমএমএক্স এমএমএল এমএমসি এমএমডি এমএমএম
সম্পাদনা 2:
আপনার ফলাফলগুলি পরীক্ষা করতে জোনাথন অ্যালানকে সৌজন্যে নিম্নলিখিত অ-গল্ফযুক্ত কোডটি ব্যবহার করুন ।
সম্পাদনা 3:
এই চ্যালেঞ্জের সমস্ত ত্রুটির জন্য আমি ক্ষমা চেয়ে নিচ্ছি। আমি পরের বার আরও ভাল কাজ করা নিশ্চিত করব!