मान लीजिए कि हमारे पास एक संख्या 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