Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <bits/stdc++.h>using namespace std;long long pw10[50], pw8[50];int res[100];int main() {pw10[0] = 1;for (int i = 1; i <= 30; i++) {pw10[i] = pw10[i - 1] * 10;}pw8[0] = 1;for (int i = 1; i <= 30; i++) {pw8[i] = pw8[i - 1] * 8;}long long K;while (scanf("%lld", &K) == 1) {for (int len = 1; len <= 30; len++) {long long sum = pw10[len] - pw10[len - 1];sum -= pw8[len - 1] * 7;if (K > sum) {K -= sum;} else {bool have = false;for (int i = 0; i < len; i++) {for (int j = 0; j < 10; j++) {if (i == 0 && j == 0) {continue;}bool thave = have;