題目在 https://zerojudge.tw/ShowProblem?problemid=e984
思路就是把每個Lunlun number X算出來, 累積到測資要的個數K.
所有的X都放在X[ ],數字小的放前面, 算出的新X放後面, 由前面的X算後面的X, K個很快就算出來了.
程式如下
#include <iostream>
using namespace std;
long long X[1000003];
int main(){
int K;
cin >> K;
//X[1]=1, X[2]=2, ... , X[9]=9
for (int i = 1; i < 10; i++){
X[i]=i;
}
int now = 1;
int tail=10;
while (X[K] == 0){
long long x = X[now++];
int n = x % 10;
if (n != 0)
X[tail++]=(x*10+n-1);
X[tail++]=(x*10+n);
if (n != 9)
X[tail++]=(x*10+n+1);
}
cout << X[K] << endl;
}
C++