在 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
广告