ধরুন আমাদের একটি সংখ্যা n আছে, আমাদের n-এর নিকটতম এবং ছোট পরিপাটি সংখ্যাটি খুঁজে বের করতে হবে। সুতরাং একটি সংখ্যাকে পরিপাটি সংখ্যা বলা হয়, যদি এর সমস্ত সংখ্যা অ-হ্রাস না হওয়া ক্রমে সাজানো হয়। সুতরাং সংখ্যাটি যদি 45000 হয়, তাহলে নিকটতম এবং ছোট পরিপাটি সংখ্যাটি হবে 44999৷
এই সমস্যাটি সমাধান করার জন্য, আমরা শেষ থেকে সংখ্যাটি অতিক্রম করব, যখন পরিপাটি সম্পত্তি লঙ্ঘন করা হয়, তখন আমরা 1 দ্বারা সংখ্যা কমিয়ে ফেলি এবং পরবর্তী সমস্ত সংখ্যা 9 হিসাবে তৈরি করি।
উদাহরণ
#include<iostream> using namespace std; string tidyNum(string number) { for (int i = number.length()-2; i >= 0; i--) { if (number[i] > number[i+1]) { number[i]--; for (int j=i+1; j<number.length(); j++) number[j] = '9'; } } return number; } int main() { string str = "45000"; string num = tidyNum(str); cout << "The tidy number is: " << num; }
আউটপুট
The tidy number is: 44999