C++从数字列表删除包含指定数字的数
假设我们有一个整数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+(nmod9)*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