在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

以上是 在C ++中找到最接近且较小的整齐数 的全部内容, 来源链接: utcz.com/z/326681.html

回到顶部