hdoj1597find the nth digit
2016-01-04 08:55
197 查看
find the nth digit
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 10159 Accepted Submission(s): 2989
Problem Description
假设:
S1 = 1
S2 = 12
S3 = 123
S4 = 1234
.........
S9 = 123456789
S10 = 1234567891
S11 = 12345678912
............
S18 = 123456789123456789
..................
现在我们把所有的串连接起来
S = 1121231234.......123456789123456789112345678912.........
那么你能告诉我在S串中的第N个数字是多少吗?
Input
输入首先是一个数字K,代表有K次询问。
接下来的K行每行有一个整数N(1 <= N < 2^31)。
Output
对于每个N,输出S中第N个对应的数字.
Sample Input
6 1 2 3 4 5 10
Sample Output
1 1 2 1 2 4
代码:
#include<cstdio> int main() { int n; scanf("%d",&n); while (n--) { int x,i; scanf("%d",&x); if(x==1) { printf("1\n"); continue; } for (i=1;x>i;i++) x-=i; if (x%9==0) x=9; else if (x>9) x%=9; printf("%d\n",x); } return 0; } 为什么下面这个就超时呢,,知道的麻烦给我说下 #include<cstdio> int main() { int n; scanf("%d",&n); while (n--) { int x,i; scanf("%d",&x); if(x==1) { printf("1\n"); continue; } for (i=1;i*(i+1)/2<x;i++); int s=x-i*(i-1)/2; if (s%9==0) s=9; else if (s>9) s%=9; printf("%d\n",s); } return 0; }
相关文章推荐
- Linux命令行与命令
- STL编程题1(C++程序设计第8周)
- 《算法导论》 — Chapter 7 高速排序
- Linux架构
- 封装好的javascript前端分页插件pagination
- Android编程中Handler原理及用法实例分析
- Linux文件管理
- js控制精度的加减乘除:js浮点数计算问题
- hdoj1232畅通工程
- TCP协议中的三次握手和四次挥手(图解)
- Mysql导出函数、存储过程
- NSString的常用方法
- js完整教程一 : 基本概念和数组操作
- 蓝旭2015年十月纳新计划
- html5创建对象的三种方式
- 结构体的封装转换作用
- 学习笔记-php和js之间的相互调用
- CLRS 12.3插入和删除
- (2016年1月4日)手机qq内置浏览器在iframe中a标签的坑
- hdoj1213How Many Tables