在 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

更新於: 2019 年 12 月 19 日

95 次瀏覽

啟動事業

完成課程獲得認證

開始
廣告
© . All rights reserved.