NC219915. NIT的数
描述
输入描述
一行 2 个正整数 x,k,意义见题目。
输出描述
一行 1 个正整数 y,意义见题目。
示例1
输入:
14 1
输出:
22
示例2
输入:
99 2
输出:
101
说明:
注意:99 本身也是 的回文数C++ 解法, 执行用时: 50ms, 内存消耗: 504K, 提交时间: 2021-10-02 16:34:02
using namespace std; #include <bits/stdc++.h> #define ll long long ll pw[19]; ll x,k; ll print(ll v,int flag){ int w=log10(v); ll u=v; for (int i=flag;i<=w;++i) u=u*10+v/pw[i]%10; return u; } int main(){ // freopen("in.txt","r",stdin); pw[0]=1; for (int i=1;i<=18;++i) pw[i]=pw[i-1]*10; scanf("%lld%lld",&x,&k); ll w=log10(x)+1,t=x/pw[w/2],h=(w+1)/2; if (print(t,w&1)>=x) --k; while (k>0){ --k; ++t; if (t==pw[h]){ ++w; if (w&1^1) t=pw[h-1]; else ++h; } } ll ans=print(t,w&1); printf("%lld\n",ans); return 0; }