在 C++ 中移除 9
假设我们有一个整数 n,我们必须在执行以下操作后返回第 n 个整数:从整数 1 开始,移除任何包含 9 的整数,例如 9、19、29……那么现在,我们将得到一个新的整数序列,如 1、2、3、4、5、6、7、8、10、11、... 我们必须牢记 1 将成为第一个整数。
因此,如果输入类似 9,那么输出将是 10
为了解决这个问题,我们将按照以下步骤进行操作:-
ret := 0
s := 1
当 n 不为零时,执行:-
ret := ret + (n mod 9) * s
n := n / 9
s := s * 10
s := s * 10
为了更好地理解,我们来看一下以下实现:-
示例
#include <bits/stdc++.h>
using namespace std;
typedef long long int lli;
class Solution {
public:
int newInteger(int n) {
int ret = 0;
lli s = 1;
while (n) {
ret += (n % 9) * s;
n /= 9;
s *= 10;
}
return ret;
}
};
main(){
Solution ob;
cout << (ob.newInteger(120));
}输入
120
输出
143
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP