在 C++ 中找到最近且較小的整潔數
假設我們有一個數 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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP