poj 1019
来源:互联网 发布:淘宝香水的货源 编辑:程序博客网 时间:2024/05/23 20:27
Number Sequence
Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 33838 Accepted: 9679
Description
A single positive integer i is given. Write a program to find the digit located in the position i in the sequence of number groups S1S2...Sk. Each group Sk consists of a sequence of positive integer numbers ranging from 1 to k, written one after another.
For example, the first 80 digits of the sequence are as follows:
11212312341234512345612345671234567812345678912345678910123456789101112345678910
For example, the first 80 digits of the sequence are as follows:
11212312341234512345612345671234567812345678912345678910123456789101112345678910
Input
The first line of the input file contains a single integer t (1 ≤ t ≤ 10), the number of test cases, followed by one line for each test case. The line for a test case contains the single integer i (1 ≤ i ≤ 2147483647)
Output
There should be one output line per test case containing the digit located in the position i.
Sample Input
283
Sample Output
22
Source
Tehran 2002, First Iran Nationwide Internet Programming Contest
这一题的关键是要想得到对于数字n,它的位数是多少。及len(n)=log(10)n + 1。也就是12是2位数,182是三位数,然后剩下就就好办了,相信一下的代码应该很好理解了。
AC代码:
#include<iostream>#include<cmath>using namespace std;long long a[31270],s[31270];void init(){ a[0]=s[0]=0; a[1]=s[1]=1; for(int i=2;i<31270;i++){ a[i]=a[i-1]+(int)log10(i+0.0)+1; s[i]=s[i-1]+a[i]; }}int main(){ init(); int T; cin>>T; while(T--){ long long n; cin>>n; int i; i=1; int len,pos; while(s[i]<n) i++; pos=n-s[i-1]; len=0; for(i=1;len<pos;i++) len+=log10(i+0.0)+1; int ans=(i-1)/pow(10.0,len-pos+0.0); ans%=10; cout<<ans<<endl; } return 0;}
0 0
- poj 1019
- POJ-1019
- POJ 1019
- POJ 1019
- POJ 1019
- poj 1019
- POJ 1019
- poj 1019
- POJ 1019
- poj 1019
- poj-1019
- poj 1019
- poj 1019
- poj-1019
- poj 1019
- POJ 1019 Number Sequence
- POJ 1019 Number Sequence
- poj 1019 Number Sequence
- 关于在SSH项目中使用OpenSessionInViewFilter过滤器后数据库数据不更新的问题
- Uicc之IccFileHandler(原)
- 学生信息管理系统错误集锦(一)
- hdu 1272 并查集判断树的构成
- 另类乘法
- poj 1019
- 数字电路设计之循环右移的verilog实现
- hdu2492 数状数组或者线段树
- 初使JNI
- C++ 之 对象的实现
- 深度剖析 Android APK 签名机制
- HDU 4888
- FlatBuffers与protobuf性能比较
- XML概述