在 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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP