将自然数序列剔除掉包含4的数字,求第k(1e12)个数是什么
题目
思路:将k转化为九进制,然后将大于等于4的数字加一
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pb push_back
const int maxn = 1e6 + 5, inf = 1e9, maxm = 5e3 + 5;
int a[maxn], b[maxn];
string s;
int n, m;
map<int, int> mp;void solve()
{int k;cin >> k;string res;while(k){int r = k % 9;if(r >= 4) r++;res += char(r + '0');k /= 9;}reverse(res.begin(), res.end());cout << res << '\n';
}
signed main()
{ios::sync_with_stdio(0);cin.tie(0);int T = 1;cin >> T;while (T--){solve();}return 0;
}