একটি সংখ্যা n দেওয়া আছে। তার নিকটতম ছোট টাইডি নাম্বার (ডিজিটগুলো নন-ডিক্রিজিং অর্ডারে) বের করতে হবে। উদাহরণ: 45000 -> 44999।
স্ট্রিং-এর শেষ থেকে শুরু করুন। যেখানে টাইডি প্রোপার্টি ভাঙে (digit[i] > digit[i+1]), সেখানে ডিজিট ১ কমিয়ে পরে সবগুলো ৯ করুন।
উদাহরণ
#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";
cout << "The tidy number is: " << tidyNum(str);
return 0;
}
আউটপুট
The tidy number is: 44999