链接
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3202
题解
注意分奇偶讨论
代码
//构造
#include <bits/stdc++.h>
#define ll long long
#define maxn 20
using namespace std;
ll mi[maxn], cnt[maxn];
void preprocess()
{
ll i;
mi[0]=1;
for(i=1;i<maxn;i++)mi[i]=mi[i-1]*10, cnt[i]=mi[i+1>>1]-mi[(i+1>>1)-1];
}
int main()
{
ll i, j, n, s[maxn], t;
preprocess();
while(scanf("%lld",&n),n)
{
for(i=1;cnt[i]<n;n-=cnt[i],i++);
t=mi[i-1>>1]+n-1;
for(*s=0;t;t/=10)s[++*s]=t%10;
for(j=*s;j>(i&1);j--)putchar(s[j]+48);
for(j=1;j<=*s;j++)putchar(s[j]+48);
putchar(10);
}
return 0;
}