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