मान लीजिए हमारे पास एक पूर्णांक n है, हमें उस पूर्णांक को वापस करना है जो निम्नलिखित ऑपरेशन के बाद nवें स्थान पर आता है: 1 से शुरू करें, किसी भी ऐसे पूर्णांक को हटा दें जिसमें 9 हो जैसे 9, 19, 29... अब हमारे पास पूर्णांकों का एक नया क्रम होगा: 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, ... ध्यान रखें कि 1 पहला पूर्णांक होगा।
इसलिए, यदि इनपुट 9 है, तो आउटपुट 10 होगा।
इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:
ret := 0s := 1nशून्येतर होने तक लूप चलाएं:ret := ret + (n mod 9) * sn := n / 9s := 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;
}
};
int main(){
Solution ob;
cout << (ob.newInteger(120));
}
इनपुट
120
आउटपुट
143