POJ1019-Number Sequence-数数。。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POJ1019-Number Sequence-数数。。相关的知识,希望对你有一定的参考价值。
1
12
123
1234
把数按照这样的形式拍成一排,给一个序号求出那个序号对应的数。
当出现两位数。三位数时,要麻烦的处理一下。
#include <cstdio> #include <algorithm> #include <cmath> using namespace std; int T,N,ans; int getbit(int x) { int rtn = 0; while(x) { x/=10; rtn++; } return rtn; } int main() { scanf("%d",&T); while(T--) { scanf("%d",&N); int cur = 1,cnt = 1;; while(true) { if(N <= cur) break; N -= cur; cnt++; cur += getbit(cnt); } //printf("N=%d cur=%d cnt=%d\n",N,cur,cnt); cur = 1,cnt = 1; while(true) { if(N <= cur) break; N -= cur; cnt++; cur = getbit(cnt); } //printf("N=%d cur=%d cnt=%d\n",N,cur,cnt); if(cur == N) ans = cnt%10; else ans = (int)(cnt/pow(10,cur-N)) % 10; printf("%d\n",ans); } }
以上是关于POJ1019-Number Sequence-数数。。的主要内容,如果未能解决你的问题,请参考以下文章
北大ACM(POJ1019-Number Sequence)
[POJ2778]DNA Sequence(AC自动机 + DP + 矩阵优化)