P1895 数字序列
Posted mysh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P1895 数字序列相关的知识,希望对你有一定的参考价值。
题目背景
查找数字
题目描述
在下列的无穷数字序列1121231234123451234561234567123456781234567891234567 8910123456789101112345678910......中,查找第i个数字。
输入格式
第一行为正整数t(1≤t≤10),表示测试数据组数。接下来t行,每行一个正整数i(1≤i≤2^31-1)。
输出格式
对于每一个i,输出对应位置上的数字。
输入输出样例
输入 #1
2 3 8
输出 #1
2 2
思路
预处理不必拆开每个数,只要像LCA一样对整十数(10,100,1000......)记录即可
代码:
#include<cmath> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; const int N=40010; int p=1,t,n; int a[N],lis[N]; int main() for(int i=1; i<=40000; i++) a[i]=a[i-1]; if(i==p) a[i]++; p*=10; for(int i=1; i<=40000; i++) lis[i]=lis[i-1]+a[i]; scanf("%d",&t); while(t--) scanf("%d",&n); for(int i=1; n>lis[i]; i++) n-=lis[i]; int top=1; while(n>a[top]) n-=a[top++]; int ans[10]; for(int i=a[top]; i; i--) ans[i]=top%10; top/=10; printf("%d\n",ans[n]); return 0;
以上是关于P1895 数字序列的主要内容,如果未能解决你的问题,请参考以下文章
数字信号处理序列表示与运算 ( 序列乘以常数 | 序列相加 | 序列移位 | 序列尺度变换 )
数字信号处理序列分类 ( 单边序列和双边序列 | 有限序列和无限序列 | 稳定序列和不稳定序列 )
数字信号处理周期序列 ( 周期序列示例 3 | 判断序列是否是周期序列 )