假设我们有一个整数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