Palindrome Numbers(LA2889)第n个回文数是?
2015-06-10 13:46
323 查看
J - Palindrome Numbers
Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %lluSubmit Status Practice UVALive 2889
WA了一版面,我也是醉了,就因为一个编译环境不同。。。。。。
说多了都是泪。
题目链接:请点击UVALive 2889
转载请注明出处:
寻找&星空の孩子
#include<stdio.h> #define LL long long #define MM 2000000000 LL 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++放里面,因为变异环境不同;运算顺序不同,可能会wa num[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; }
相关文章推荐
- 第十四周项目一小玩文件(2)
- 收藏一些好的论坛
- 深入研究Java类加载机制
- HTML空格占位符
- 字符串替换算法思考
- 网页图表Highcharts实践教程标之添加题副标题版权信息
- 插入排序
- Zookeeper应用 - 集中配置管理系统的实现
- 遍历list集合,把每个元素的值对应的计算结果展示在页面上
- docker运行报错Get http:///var/run/docker.sock/v1.18/containers/json?all=1:
- 页面设计--Label
- PHP array_multisort()
- fullPage.js api 介绍
- ajax异步调用
- WEB项目登陆验证思路
- Android学习 2 -建立模拟器
- 安卓微信底部导航栏的实现
- 2011年SAT数学成绩换算表介绍
- C#的函数
- echo命令详解