使用Python和xlwt向Excel檔案中寫入中文的例項
阿新 • • 發佈:2021-06-17
#include <bits/stdc++.h> using namespace std; using ll = long long ; ll x,k,f[20],p[15]; void init(){ p[0]=1; for(int i=1;i<15;i++) p[i]=10ll*p[i-1]; for(int i=2;i<20;i++) f[i]=9ll*p[i-1>>1]; f[1]=10; } ll dp(ll x){ if(x>=0&&x<=9)return x+1; ll res=0; vector<int>v; while(x){ v.push_back(x%10);x/=10; } int n=v.size(); ll a=0,b=0; for(int i=n-1;i>=n>>1;i--){ int x=v[i]; res+=p[i-n/2]*(x-1); if(i!=n-1)res+=p[i-n/2]; } for(int i=n/2-1;i>=0;i--){ b=b*10+v[i]; } for(int i=n+1>>1;i<n;i++){ a=a*10+v[i]; } if(b>=a)res++; for(int i=1;i<n;i++)res+=f[i]; return res; } int main() { init(); cin>>x>>k;///x往後第k個迴文 ll y=dp(x-1)+k;///多少個小於x的迴文數 ll l=1,r=1e18; while(l<r){ ll mid=l+r>>1; if(dp(mid)>=y)r=mid;else l=mid+1; } cout<<l; return 0; }