题意:找出第index 个回文数。

这题是有规律的,即list[]数组。

其次,对于某个 index 可以先精确到 位数 pos,然后在进行分析。

1a

  1 #include<stdio.h>
  2 #include<string.h>
  3 #include<math.h>
  4 typedef __int64 int64;
  5 int64 list[ 24 ];
  6 int ans[ 240 ];
  7
  8 void init(){
  9     list[0] = 0;
 10     list[1] = 9;
 11     list[2] = 9;
 12     list[3] = 90;
 13     list[4] = 90;
 14     list[5] = 900;
 15     list[6] = 900;
 16     list[7] = 9000;
 17     list[8] = 9000;
 18     list[9] = 90000;
 19     list[10] = 90000;
 20     list[11] = 900000;
 21     list[12] = 900000;
 22     list[13] = 9000000;
 23     list[14] = 9000000;
 24     list[15] = 90000000;
 25     list[16] = 90000000;
 26     list[17] = 900000000;
 27     list[18] = 900000000;
 28     list[19] = 9000000000;
 29     list[20] = 9000000000;
 30     //printf("list20=%I64d\n",list[20]);
 31 }
 32 int main(){
 33     int64 index;
 34     init();
 35     while( scanf("%I64d",&index),index ){
 36         int pos;
 37         for( int num=0;num<=20;num++ ){
 38             if( index>=list[ num ] ){
 39                 index -= list[ num ];
 40                 pos = num;
 41             }
 42             else
 43                 break;
 44         }
 45         if( index>0 ) pos ++;
 46         //printf("pos=%d\n",pos);
 47         if( index==0 ){
 48             for( int i=0;i<pos;i++ )
 49                 printf("9");
 50             printf("\n");
 51             continue;
 52         }
 53         int64 cur = list[ pos ]/9;
 54         if( index>=cur ){
 55             index += cur;
 56             index --;
 57             int tt=0;
 58             while( index!=0 ){
 59                 ans[ tt++ ] = index%10;
 60                 index /= 10;
 61             }
 62             if( pos%2==0 ){
 63                 for( int i=tt-1;i>=0;i-- )
 64                     printf("%d",ans[i]);
 65                 for( int i=0;i<tt;i++ )
 66                     printf("%d",ans[i]);
 67                 printf("\n");
 68             }//偶数位
 69             else{
 70                 for( int i=tt-1;i>=0;i-- )
 71                     printf("%d",ans[i]);
 72                 for( int i=1;i<tt;i++ )
 73                     printf("%d",ans[i]);
 74                 printf("\n");
 75             }//奇数位
 76         }
 77         else{
 78             index--;
 79             int num1 = 0;
 80             int num2 = 0;
 81             while( cur!=0 ){
 82                 num1++;
 83                 cur /= 10;
 84             }
 85             int tt = index;
 86             while( tt!=0 ){
 87                 num2++;
 88                 tt /= 10;
 89             }
 90             tt = 0;
 91             while( index!=0 ){
 92                 ans[tt++] = index%10;
 93                 index/=10;
 94             }
 95             for( int i=1;i<=num1-num2;i++ )
 96                 if( i==num1-num2 )
 97                     ans[tt++] = 1;
 98                 else
 99                     ans[tt++] = 0;
100             if( pos%2==0 ){
101                 for( int i=tt-1;i>=0;i-- )
102                     printf("%d",ans[i]);
103                 for( int i=0;i<tt;i++ )
104                     printf("%d",ans[i]);
105                 printf("\n");
106             }
107             else{
108                 for( int i=tt-1;i>=0;i-- )
109                     printf("%d",ans[i]);
110                 for( int i=1;i<tt;i++ )
111                     printf("%d",ans[i]);
112                 printf("\n");
113             }
114         }
115     }
116     return 0;
117 }

View Code

转载于:https://www.cnblogs.com/xxx0624/p/3209033.html

POJ2402+模拟相关推荐

  1. springboot实现SSE服务端主动向客户端推送数据,java服务端向客户端推送数据,kotlin模拟客户端向服务端推送数据

    SSE服务端推送 服务器向浏览器推送信息,除了 WebSocket,还有一种方法:Server-Sent Events(以下简称 SSE).本文介绍它的用法. 在很多业务场景中,会涉及到服务端向客户端 ...

  2. curl模拟post请求

    另外可尝试 postman工具 或者用request 直接请求 CURL 发送POST请求curl -header "Content-Type: application/json" ...

  3. flask_模拟请求post,get

    #coding:utf-8 import requestsres = requests.post(url="http://192.168.135.105:8888/",data={ ...

  4. 模拟内存计算如何解决边缘人工智能推理的功耗挑战

    模拟内存计算如何解决边缘人工智能推理的功耗挑战 How analog in-memory computing can solve power challenges of edge AI inferen ...

  5. 为放大器模拟输入模块提供可靠的输入过电压保护

    为放大器模拟输入模块提供可靠的输入过电压保护 Signal Chain Basics #159: Provide robust input overvoltage protection for amp ...

  6. 模拟Servlet本质

    JavaWeb系列教程,持续更新 JavaWeb-Servlet 模拟Servlet本质 使用IDEA开发Servlet程序 Servlet对象的生命周期 适配器(GenericServlet)改造S ...

  7. 2021年大数据Flink(四十):​​​​​​​Flink模拟双十一实时大屏统计

    目录 Flink模拟双十一实时大屏统计 需求 数据 编码步骤: 1.env 2.source 3.transformation 4.使用上面聚合的结果,实现业务需求: 5.execute 参考代码 实 ...

  8. Python:模拟登录、点击和执行 JavaScript 语句案例

    案例一:网站模拟登录 # douban.pyfrom selenium import webdriver from selenium.webdriver.common.keys import Keys ...

  9. 杨老师课堂_Java核心技术下之控制台模拟文件管理器案例

    背景需求介绍: 编写一个模拟文件管理器的程序,实现控制台对文件和文件夹的管理操作. 要求在此程序中: 当用户输入指令 1 时,代表"指定关键字检索文件",此时需要用户输入检索的目录 ...

最新文章

  1. 【Linux】Linux下的硬链接与符号链接
  2. Android开发实践:掌握Camera的预览方向和拍照方向
  3. 《Win32多线程程序设计》学习笔记 第17章 OLE ActiveX COM
  4. .sync的一个用法
  5. 一个form 如何做两次提交_如何做一个优秀的家长
  6. 登陆 tomcat manager
  7. 搭建第一个Docker
  8. SQL中WHERE子句介绍
  9. PHP树形结构数据增加每层的级别
  10. js 根据某属性取出数组中对应的对象
  11. 电脑桌面录屏软件大全,给大家推荐一波优秀的屏幕录像工具!
  12. ThinkPHP 3.2.3 验证码 (解决图片不显示的问题)
  13. 独立站的SEO搜索引擎优化
  14. 全栈学习的知识点梳理(一)
  15. 工程项目管理思维导图模板
  16. 比chatgpt稍逊的ai问答网站phind,专用于编写代码
  17. Android Studio 4.22 解决com.android.tools.idea.run.ApkProvisionException
  18. STM32之中断的使用
  19. Java语言的特点及应用有哪些
  20. 大数据-日志接收处理

热门文章

  1. 乒乓球比赛赛程_丁宁休战,刘诗雯做手术!李隼、秦志戬做介绍,国乒最新赛程曝光...
  2. matlab ufunc,ufunc函数
  3. Bytes int java_Java Bytes.readInt方法代码示例
  4. ifconfig没有命令 kali_新装的Linux系统没有ifconfig命令?教你一键找回
  5. html邮件模板编辑器_免费电子邮件群发工具推荐「aweber」
  6. oracle误删表空间 无法关闭,oracle 误删表空间文件启动不了数据库的解决办法
  7. java 添加联系人,java – 如何将联系人添加到组android
  8. 阻塞队列 java实现_JAVA实现阻塞队列
  9. jsx后缀的是什么文件_React-从JSX到虚拟DOM
  10. 高并发高可用系统应对策略的一些思考