Palindrome Numbers(LA2889)第n个回文数是?

#include<stdio.h>#define LL long long#define MM 2000000000LL num[25]= {0};LL ppow(LL x,LL y){LL tp=1;while(y–){tp*=x;}return tp;}void init(){LL tp=9,i;for(i=1;;){num[i]=num[i-1]+tp;i++;//同行有多个i要处理的时候i,不要把i++放里面,因为变异环境不同;运算顺序不同,,可能会wanum[i]=num[i-1]+tp;i++;tp=tp*10;if(num[i-1]>=MM)break;}/* for(int i=1;i<21;i++){LL p=(i+1)/2-1;num[i]=num[i-1]+9*ppow(10,p);//printf("%lld\n",num[i]);}//printf("%lld\n",num[0]);*/}int main(){init();LL n;LL a[20];while(scanf("%lld",&n),n){int len=0;for(int i=1; i<=20; i++){if(n<=num[i]){len=i;break;}}//printf("len=%d\n",len);LL m=n-num[len-1];int l=(len+1)/2;//printf("m=%lld\tl=%d\n",m,l);LL ans=ppow(10,l-1)+m-1;//printf("ans=%lld\tppow=%lld\n",ans,ppow(10,l-1));printf("%lld",ans);if(len&1) ans/=10;while(ans){printf("%lld",ans%10);ans/=10;}printf("\n");}return 0;}

一起吃早餐,午餐,晚餐。或许吃得不好,

Palindrome Numbers(LA2889)第n个回文数是?

相关文章:

你感兴趣的文章:

标签云: