poj 1019 Number Sequence
2013-09-14 12:16
459 查看
#include <iostream> #include <stdio.h> using namespace std; int D[100001]; int get_digit(int k) //k占用几位 { if(D[k] != 0) return D[k]; int tk=0; while(k>0) { tk++; k /= 10; } D[k] = tk; return D[k]; } int get_in_k(int k,int M)//在Dk寻找第M个位置的数字 { int i=1; //printf("init k=%d M=%d\n",k,M); while(M> get_digit(i)) { M -= get_digit(i); i++; } int l = get_digit(i) +1 - M; //M是从左边,即高位在i中寻找第M个数字。 l是从右边即低位寻找第M个数组 //printf("k=%d M=%d l=%d i=%d\n",k,M,l,i); while( l > 1) { i /= 10; l--; } return i%10; } int solve(int M) { int k=1; int l=1; while( M > l) { M -= l; //l是Sk占用的位数,SK占用的位数是SK-1占用位置 +k占用的位数 //l++; k++; l += get_digit(k); } return get_in_k(k,M); } int main(){ int n; cin>>n; for(int i=1;i<=n;i++) { int M; cin>>M; cout<<solve(M)<<endl; } }
相关文章推荐
- 【poj1019】 Number Sequence
- POJ 1019 Number Sequence
- POJ 1019 Number Sequence 转载
- poj 1019 Number Sequence
- POJ1019-Number Sequence
- poj 1019 Number Sequence 找规律 思维题 ()
- 【POJ 1019】 Number Sequence
- poj1019--Number Sequence题解
- poj1019--Number Sequence(组合篇3)
- poj 1019 Number Sequence
- POJ 1019 Number Sequence 题解
- POJ-1019 Number Sequence
- POJ1019————Number Sequence
- POJ-1019-Number Sequence
- POJ 1019 Number Sequence
- poj 1019 Number Sequence
- POJ 1019 Number Sequence(DP?)
- poj 1019 Number Sequence
- poj 1019 Number Sequence 数学&模拟
- POJ-1019 Number Sequence