660 Remove 9
把所有带9的数字移出,问第n个数会是多少。相当于原先到第10个数进位,变成现在第9个数就进位,也就是把在十进制下的n转化成没有9存在的9进制下的数。如果都是从末尾整个删去,比如remove 8和9,相当于把十进制转成8进制。如果从中间删,如删去6,相当于转成9进制后,678替换成789。
class Solution {
public:
int newInteger(int n) {
int res = 0, base = 1;
while (n > 0) {
res += n % 9 * base;
n /= 9;
base *= 10;
}
return res;
}
};
Last updated
Was this helpful?