POJ2402+模拟
来源:互联网 发布:淘宝客服挂起 编辑:程序博客网 时间:2024/05/16 13:41
题意:找出第index 个回文数。
这题是有规律的,即list[]数组。
其次,对于某个 index 可以先精确到 位数 pos,然后在进行分析。
#include<stdio.h>#include<string.h>#include<math.h>typedef __int64 int64;int64 list[ 24 ];int ans[ 240 ];void init(){ list[0] = 0; list[1] = 9; list[2] = 9; list[3] = 90; list[4] = 90; list[5] = 900; list[6] = 900; list[7] = 9000; list[8] = 9000; list[9] = 90000; list[10] = 90000; list[11] = 900000; list[12] = 900000; list[13] = 9000000; list[14] = 9000000; list[15] = 90000000; list[16] = 90000000; list[17] = 900000000; list[18] = 900000000; list[19] = 9000000000; list[20] = 9000000000; //printf("list20=%I64d\n",list[20]);}int main(){ int64 index; init(); while( scanf("%I64d",&index),index ){ int pos; for( int num=0;num<=20;num++ ){ if( index>=list[ num ] ){ index -= list[ num ]; pos = num; } else break; } if( index>0 ) pos ++; //printf("pos=%d\n",pos); if( index==0 ){ for( int i=0;i<pos;i++ ) printf("9"); printf("\n"); continue; } int64 cur = list[ pos ]/9; if( index>=cur ){ index += cur; index --; int tt=0; while( index!=0 ){ ans[ tt++ ] = index%10; index /= 10; } if( pos%2==0 ){ for( int i=tt-1;i>=0;i-- ) printf("%d",ans[i]); for( int i=0;i<tt;i++ ) printf("%d",ans[i]); printf("\n"); }//偶数位 else{ for( int i=tt-1;i>=0;i-- ) printf("%d",ans[i]); for( int i=1;i<tt;i++ ) printf("%d",ans[i]); printf("\n"); }//奇数位 } else{ index--; int num1 = 0; int num2 = 0; while( cur!=0 ){ num1++; cur /= 10; } int tt = index; while( tt!=0 ){ num2++; tt /= 10; } tt = 0; while( index!=0 ){ ans[tt++] = index%10; index/=10; } for( int i=1;i<=num1-num2;i++ ) if( i==num1-num2 ) ans[tt++] = 1; else ans[tt++] = 0; if( pos%2==0 ){ for( int i=tt-1;i>=0;i-- ) printf("%d",ans[i]); for( int i=0;i<tt;i++ ) printf("%d",ans[i]); printf("\n"); } else{ for( int i=tt-1;i>=0;i-- ) printf("%d",ans[i]); for( int i=1;i<tt;i++ ) printf("%d",ans[i]); printf("\n"); } } } return 0;}
- POJ2402+模拟
- poj2402
- poj2402 kmp算法
- poj2402(计算第k个回文数)
- 模拟
- 模拟
- 模拟
- 模拟
- 模拟
- 模拟
- 模拟
- 模拟
- 模拟
- 模拟:
- 模拟
- 模拟
- 模拟
- 模拟
- hdu 1085 Holding Bin-Laden Captive!
- Flex中如何通过showCloseButton属性控制TitleWindow右上角关闭按钮有效/无效的例子
- oracle中spool将查询的数据写入文件
- android4.0增加遥控器按键步骤
- Dijkstra 算法总结
- POJ2402+模拟
- js 鼠标右键事件
- mysql的grant权限
- 调用WebService实例
- 如何快速学习cocos2d-x?
- snmpwalk命令使用帮助
- 块编程指南
- 注解实现UI
- ROM刷机原理及ROM制作技术初探