Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Tìm số tidy gần nhất và nhỏ hơn trong C++


Giả sử có số n, tìm số tidy gần nhất và nhỏ hơn n. Số tidy là số có các chữ số sắp xếp theo thứ tự không giảm. Nếu số là 45000, số tidy gần nhất nhỏ hơn là 44999.

Để giải quyết, duyệt số từ cuối, khi tính chất tidy bị vi phạm, giảm chữ số đó 1 và làm tất cả chữ số sau thành 9.

Ví dụ mã nguồn

#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; }

Kết quả

The tidy number is: 44999