zerojudge 計算Lunlun Number數目

題目在 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++