যখন আমি ছোট ছিলাম, এবং আমার জীবন সাশ্রয়ে ডলারের বিলগুলি গণনা করতে চেয়েছিলাম, আমি উচ্চস্বরে গণনা করব:
এক দুই তিন চার পাঁচ ছয় সাত আট নয় দশ;
এগারো, বারো, তের, চৌদ্দ, পনের, ষোল, সতের, আঠারো, উনিশ, বিশ;
একুশ, বাইশ, তেইশ, চব্বিশ, পঁচিশ ...
অবশেষে আমি এই বহু-অক্ষরের প্রতিটি সংখ্যা উচ্চারণ করে ক্লান্ত হয়ে পড়েছিলাম। গাণিতিক মনোভাবের কারণে, আমি গণনার আরও কার্যকর পদ্ধতি তৈরি করেছি:
এক দুই তিন চার পাঁচ ছয় সাত আট নয় দশ;
এক, দুই, তিন, চার, পাঁচ, ছয়, সাত, আট, নয়, বিশ;
এক, দুই, তিন, চার, পাঁচ, ছয়, সাত, আট, নয়, ত্রিশ ...
আপনি দেখতে পাচ্ছেন, আমি কেবলমাত্র পূর্ববর্তী সংখ্যা থেকে পরিবর্তিত অঙ্ক (গুলি) উচ্চারণ করব। এটির অতিরিক্ত সুবিধা রয়েছে যে এটি সংখ্যার জন্য ইংরেজি নামের তুলনায় যথেষ্ট বেশি পুনরাবৃত্তি এবং সুতরাং গণনা করার জন্য কম ব্রেইন পাওয়ার প্রয়োজন।
চ্যালেঞ্জ
একটি প্রোগ্রাম / ফাংশন লিখুন যা একটি ধনাত্মক পূর্ণসংখ্যার ক্ষেত্রে নেয় এবং ফলাফলগুলি কীভাবে আমি এটি গণনা করব তা প্রদান করে: এটি হ'ল ডান-সর্বাধিক অ-শূন্য অঙ্ক এবং সমস্ত অনুবর্তনীয় শূন্য।
উদাহরণ
1 1
2 2
10 10
11 1
29 9
30 30
99 9
100 100
119 9
120 20
200 200
409 9
1020 20
পরীক্ষার ক্ষেত্রে একটি সম্পূর্ণ তালিকা প্রয়োজন হবে না। এটি OEIS এ A274206 ।
বিধি
- আপনার প্রবেশে অবশ্যই যথাযথতা এবং মেমরির সমস্যাগুলি উপেক্ষা করে সমস্ত ধনাত্মক পূর্ণসংখ্যার জন্য তাত্ত্বিকভাবে কাজ করতে হবে।
- ইনপুট এবং আউটপুট অবশ্যই দশমিক হতে হবে।
- আপনি ইনপুট এবং / অথবা আউটপুট একটি সংখ্যা, একটি স্ট্রিং, বা অঙ্কের অ্যারে হিসাবে বেছে নিতে পারেন।
- ইনপুটটি ইতিবাচক পূর্ণসংখ্যা হিসাবে গ্যারান্টিযুক্ত। আপনার এন্ট্রি অবৈধ ইনপুট জন্য কিছু করতে পারে।
এটি কোড-গল্ফ , তাই বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়ী।
[1,0,2,0]
->[2,0]
সর্বশেষ পরীক্ষার ক্ষেত্রে? (আমি "একক-আইটেম অ্যারে" বাক্যাংশটি সম্পর্কে অস্পষ্ট)।