এই প্রশ্নটি সামনে আসার জন্য @ আগাওয়া 1001 এ ক্রেডিট ।
ব্যাখ্যা
আমার নতুন "কিবোরে" কেবলমাত্র 2 টি বোতাম রয়েছে +এবং -।
স্মৃতিতে নম্বরটি শুরু হয় 0।
প্রতিটি ক্রমাগত প্রেস +বা -ক্রমবর্ধমান / কমিয়ে মেমরিটি ঠিক কতবার পরপর চাপানো হয়েছে তার জন্য।
অতএব, আপনি যদি +4 বার টিপেন, প্রথমবার এটি 1 যুক্ত করে, দ্বিতীয়বার এটি 2 যোগ করে, তৃতীয়বার এটি 3 যোগ করে, চতুর্থবারে 4 যোগ করে, আপনাকে 10(দশ) দেয়।
এখন, আপনি যদি -3 বার টিপেন, প্রথমবার এটি 1 টি, দ্বিতীয়বার 2 টি, তৃতীয় বার 3 টি বাদ দিয়ে আপনাকে 4(চার) রেখে দেয় ।
টি এল; ডিআর
+ এবং - এর একটি স্ট্রিং দেওয়া হয়েছে, অক্ষরের প্রতিটি পরিবর্তনে এটিকে ভাগ করুন। তারপরে এম +চিহ্নগুলির প্রতিটি ফলাফলের স্ট্রিং এম-থ্রি ত্রিভুজ সংখ্যা যুক্ত করে এবং এন -চিহ্নগুলির প্রতিটি স্ট্রিং এন-থ্রি ত্রিভুজ সংখ্যাটি বিয়োগ করে।
হাঁটুন-থ্রু
এখন, আপনি এখনও বুঝতে না পারলে, আমি আপনাকে দেখাব যে কীভাবে +++--+--সৃষ্টি হয় 1।
Program | Counter | Memory
----------------------------
| 0 | 0
+ | +1 | 1
++ | +2 | 3
+++ | +3 | 6
+++- | -1 | 5
+++-- | -2 | 3
+++--+ | +1 | 4
+++--+- | -1 | 3
+++--+-- | -2 | 1
কার্য
- আপনি কার্যকারিতা যুক্তি হিসাবে বা STDIN থেকে ইনপুট হিসাবে ইতিবাচক পূর্ণসংখ্যার গ্রহণ করবেন।
- তারপরে, আপনি উপরের পদ্ধতিটি ব্যবহার করে সেই সংখ্যাটি তৈরি করতে প্রয়োজনীয় ন্যূনতম কীস্ট্রোকগুলি আউটপুট / মুদ্রণ করবেন।
Testcases
যেহেতু পুনরায় সাজানো +বা রানগুলি -একই সংখ্যা দেয় তাই এই জাতীয় প্রতিটি গ্রুপের জন্য কেবল অভিধানিকল্পিত প্রাথমিকতম ক্রম তালিকাভুক্ত করা হয়।
Input | Output | Possible corresponding sequences
-------------------------------------------------
4 | 5 | -+++-
6 | 3 | +++
9 | 5 | ++++-
11 | 7 | +++-+++
12 | 7 | +++++--, ++++-++
19 | 8 | -++++++-
39 | 12 | +++++++++---
40 | 13 | +++++++++---+, ++++++++-+++-
45 | 9 | +++++++++
97 | 20 | ++++++++++++++--+---, +++++++++++++-++++--, ++++++++++++-++++++-
361 | 34 | ++++++++++++++++++++++++++-+++-+++
অতিরিক্ত সংস্থান
- প্রমাণ যে কোনও নম্বর তৈরি করা যেতে পারে : মূলত, পুনরাবৃত্তি করে
++-, আপনি যে কোনও সংখ্যক নম্বর পেতে পারেন। বিজোড় সংখ্যাগুলি পেতে, কেবল+শেষে একটি রেখে দিন। - যে কোনও নম্বর পাওয়ার জন্য অন্য একটি সাধারণ উপায়। উদাহরণস্বরূপ, উত্পন্ন করার জন্য
50একটি উপায় হ'ল+50 বার টিপুন এবং তারপরে-49 বার টিপুন । - প্রথম 50 সংখ্যার সমাধান ।
- বাধ্যতামূলক জেএসফিডাল ।
স্কোরিং
এটি কোড-গল্ফ । বাইটস মধ্যে সংক্ষিপ্ত সমাধান।
+++++--এটি বিকল্পও, তবে ++-++++এটি সমতুল্য হওয়ায় আমি অপসারণ করেছি ++++-++)। আমি এখনও একটি আরও কেস পেয়েছি যা আমি পরে যুক্ত করতে চাই যদি কেউ কার্যকর সমাধান নিয়ে আসে তবে যদি আমি এটি তৈরির ব্যবস্থা করি।
++-++++সরানো চাইনি । এছাড়াও, এটি আমার সম্পাদনা ছিল, আপনার নয়।
+++++--(বা সমতুল্য --+++++) নিখোঁজ হয়েছিলেন , এজন্য আমি প্রথম স্থানে সম্পাদনা করার প্রয়োজনীয়তা অনুভব করেছি।