UVA 10706 Number Sequence
题意:给出一串那样的数字,很有规律的,总共有2147483647位,然后问你第 n 位上的数字是多少。
思路:具体做法是用两个数组保存上面的数据。
1、[] 数组表示前面所有段的位数,a[i]表示前i段一共有多少位。
2、保存那一段具体的位数,b[]数组存储的是序列12345678910111213…各位位数对应数组的值,即b[1]=1, b[2]=2, b[3]=3, b[4]=4, b[5]=5, b[6]=6, b[7]=7, b[8]=8, b[9]=9, b[10]=1,b[11]=0, b[12]=1,b[13]=1, b[14]=1,b[15]=1, b[16]=1,b[17]=2, b[18]=1,b[19]=3
3、利用a数组计算出某段的第几位时,直接对应输出就可以b[i];
4、关键是求出是某一段多少位就可以啦。
CODE:
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
long long a[32768], b[200010];
char str[10];
void init()
{
long long s = 0, k = 1;
for(int i = 1; i < 32768; i++)
{
s = s + (int)(log10(double(i)))+1; //求数字的位数
a[i] = a[i-1] + s;
}
for(int i = 1; i < 32768; i++)
{
memset(str, 0, sizeof(str));
sprintf(str, "%d", i);
for(int j = 0; j < strlen(str); j++)
{
b[k++] = str[j]-'0';
}
}
}
int main()
{
int T;
scanf("%d", &T);
init();
while(T--)
{
long long q;
scanf("%lld", &q);
long long *p = lower_bound(a, a+32768, q); //二分求下界,返回的是指针。
int ans = q-a[p-a-1]; //计算是某一子串的多少位
printf("%lld\n", b[ans]);
}
return 0;
}
转载于:https://www.cnblogs.com/g0feng/archive/2012/10/15/2724605.html
UVA 10706 Number Sequence相关推荐
- HDU 1711 Number Sequence(KMP算法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1711 Number Sequence Time Limit: 10000/5000 MS (Java/ ...
- 【HDU】1005 Number Sequence (有点可爱)
http://acm.hdu.edu.cn/showproblem.php?pid=1005 A number sequence is defined as follows: f(1) = 1, f( ...
- HDU 1005 Number Sequence
[题目] Number Sequence Time Limit: 2000/1000 MS (Jav ...
- HDU 1711 -Number Sequence(KMP)
题目 Number Sequence Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- 【HDU - 5014】Number Sequence(贪心构造)
题干: There is a special number sequence which has n+1 integers. For each number in sequence, we have ...
- (找循环节)Number Sequence
题目: A number sequence is defined as follows: f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2) ...
- hdu1005 Number Sequence(寻找循环节)
主题链接: huangjing 题意: 就是给了一个公式,然后求出第n项是多少... 思路: 题目中n的范围实在是太大,所以肯定直接递推肯定会超时,所以想到的是暴力打表,找循环节,可是也不是那么eas ...
- HDU.1005 Number Sequence
原题 HDU.1005 Number Sequence 分类 杂题 题意 给定一个数列{an}\left\{ a_n \right\}{an}的前两项a1a_1a1.a2a_2a2,以及其递推公 ...
- UVA10689 Yet another Number Sequence【数列+矩阵快速幂】
Let's define another number sequence, given by the following function: f(0) = a f(1) = b f(n) = f(n ...
最新文章
- python hstack_Python学习之Numpy速成记——基础篇(中)
- Delphi 与 DirectX 之 DelphiX(35): TDIB.Saturation();
- 二分查找(等于x,小于x,小于等于x,大于x,大于等于x )
- 苏州php速成,PHP入门速成
- 查询缺少的依赖文件归属于哪个rpm包
- TPU和GPU跑模型时间统计(持续更新中)以及TPU Research Cloud的申请
- hive - 解析 json
- 使用yum命令安装服务时,一直卡在Loaded plugins: fastestmirror Determining fastest mirrors
- webstorm如何自定义代码模板
- python 爬取全本免费小说网的小说
- css background-image显示全部_CSS 与网络性能,看了都说好
- 软件项目管理工具简介
- CAN资料整理(二):CAN协议帧格式
- ZEMAX | 照明设计中实用的光学模拟方法
- VUE3模板,JSX,JSV
- 信息学奥赛一本通 1359:围成面积
- Win10以太网网络电缆被拔出,没有WLAN选项
- 微信小程序生成带logo二维码
- arduino 328P的BootLoader
- 原生JS制作最简单轮播图(超清晰思路)
热门文章
- xml.etree ElementTree简介
- gamma分布_深度学习需要掌握的 13 个概率分布(附代码)
- python全栈工程_Python全栈工程师(编码)
- 最终幻想4 android,《最终幻想4》安卓版发布:重温那段曲折的冒险故事
- glonee刷机绿色机器人无命令_小图编程机器人评测:寓教于乐,让编程变得简单有趣...
- 怎么看python程序卡在哪里_Python程序卡住了
- css border 虚线间距_【前端冷知识】CSS如何实现虚线框动画
- linux怎么开机默认进入桌面图标,如何让ubuntu开机默认进入命令行啊?
- session每次请求都是新建的吗_每次去火车站都是提心吊胆,感觉就像进了贼窝一样,有同感的吗?...
- centos7 yum下载路径