Collatz অনুমান স্বীকার্য যে আপনি যদি কোন ধনাত্মক পূর্ণসংখ্যা নিতে, তারপর নিম্নলিখিত অ্যালগরিদম যথেষ্ট বার পুনরাবৃত্তি:
if number is odd, then multiply by three and add one
if number is even, then divide by two
আপনি শেষ পর্যন্ত 1 এ শেষ করবেন এটি সর্বদা কাজ করে বলে মনে হয় তবে এটি কখনও প্রমাণিত হয় নি যে এটি সর্বদা হয়।
আপনি 1 পেতে কতক্ষণ সময় নেয় তা গণনা করে ইতিমধ্যে গল্ফ করেছেন , তাই আমি ভেবেছিলাম যে আমি জিনিসগুলিকে কিছুটা স্যুইচ করব।
প্রদত্ত ধনাত্মক পূর্ণসংখ্যার সাথে শুরু করে গণনা করুন যে এটি 1 (এটির "থামার সময়") পেতে কত সময় নেয়। তারপরে সেই নম্বরটির থামার সময়টি সন্ধান করুন।
আপনি 1 এ না হওয়া পর্যন্ত বা 100 পুনরাবৃত্তির সম্পূর্ণ স্বেচ্ছাসেবী সীমাতে না আসা পর্যন্ত পুনরাবৃত্তি করুন। পূর্ববর্তী ক্ষেত্রে, এটি কতগুলি পুনরাবৃত্তি নিয়েছিল তা মুদ্রণ করুন। পরবর্তী ক্ষেত্রে, "ব্যর্থ" বা আপনার পছন্দসই কিছু অন্যান্য ধারাবাহিক আউটপুট মুদ্রণ করুন, যতক্ষণ না এটি পূর্ণসংখ্যা নয় 1≤n≤100
। আপনি এই বিকল্পের জন্য খালি স্ট্রিং আউটপুট নাও পেতে পারেন। [1, 100] ব্যাপ্তির বাইরে একটি পূর্ণসংখ্যা আউটপুট করার অনুমতি রয়েছে।
উদাহরণ:
Input: 2
2->1
Output: 1
Input: 5
5->5->5->5->5->...
Output: Fail
Input: 10
10->6->8->3->7->16->4->2->1
Output: 8
Input: 100
100->25->23->15->17->12->9->19->20->7->16->4->2->1
Output: 13
Input: 10^100
10^100->684->126->108->113->12->9->19->20->7->16->4->2->1
Output: 13
Input: 12345678901234567890
12345678901234567890->286->104->12->9->19->20->7->16->4->2->1
Output: 11
Input: 1
--Depending on your code, one of two things may happen. Both are valid for the purposes of this question.
1
Output: 0
--Or:
1->3->7->16->4->2->1
Output: 6
আমি যেমন গণনা করেছি 10^100
এবং 12345678901234567890
এমন একটি ভাষা ব্যবহার করছি যা কেবলমাত্র সেই আকারের জন্য বাস্তবকে সমর্থন করে, যদি আপনার ভাষা আরও নির্ভুল হয় তবে আপনি সেগুলির জন্য বিভিন্ন ফলাফল পেতে পারেন।
স্কোরিং
এটি কোড-গল্ফ হিসাবে , বাইটের স্বল্পতম পরিমাণের সাথে উত্তর।