(DS1.5.10)POJ 1019 Number Sequence(确定一个数字序列中某一个位置上的数字)
来源:互联网 发布:照片底色修改软件 编辑:程序博客网 时间:2024/05/18 00:24
/* * POJ_1019.cpp * * Created on: 2013年10月24日 * Author: Administrator */#include <iostream>#include <cstdio>#include <cmath>using namespace std;const int maxn = 31269;/** * a[i] :第i个数字序列的长度 * s[i] :前i个数字序列的长度 */long long a[maxn];//在这里如果用int的话会RE,这里要么用long long,要么用unsigned intlong long s[maxn];void prepare(){int i;a[1]=s[1]=1;for(i = 2 ; i < maxn ; ++i){a[i] = a[i-1] + (int)log10((double)i)+1;s[i] = s[i-1] + a[i];}return ;}int work(int n){int i = 1;while(s[i] < n){//找到在第几组数字序列++i;}int pos = n - s[i-1];//确定在该组数字序列的哪一个位置//确定这个位置在哪一个数上,并找到哪一个数位上的数字int len = 0;for(i = 1 ; len < pos ; ++i){len += (int)log10(double(i)) + 1;}return (i-1)/(int)pow((double)10,len - pos)%10;}int main(){prepare();int t;scanf("%d",&t);while(t--){int n;scanf("%d",&n);printf("%d\n",work(n));}return 0;}
- (DS1.5.10)POJ 1019 Number Sequence(确定一个数字序列中某一个位置上的数字)
- poj 1019 Number Sequence 第i位上的数字 (组合数学)
- POJ 1019 Number Sequence (数学+预处理 循环递增序列第k位数字)
- 递增有序数组中,查找某一个数字的位置
- poj 1019 求一个1到n的序列中,第k个数字是多少
- (简单模拟2.4.1)POJ 2000 Gold Coins(确定大数字序列中的某一位置在小数字序列中的位置)
- (DS1.5.2)POJ 2196 Specialized Four-Digit Numbers(同意数字各个进制的表示方式)
- 找到一个数字的位置
- 在排序好的数组插入一个数字,数字要插入到合适的位置上
- 写一个程序判断字符串中数字的位置
- 第一轮去掉奇数位置上的数字
- 获取一个数制定位置的数字
- 黑马程序员-----确定一个字符串中包含几个数字的问题
- 【莫比乌斯反演-求序列中数字两两互质的对数】ACdreamoj Number theory 1114
- HDU 1711 Number Sequence (数字KMP)
- HDU 1711 Number Sequence【数字KMP】
- POJ 1019 Number Sequence (循环递增序列的的第K个值)
- POJ 1019 Number Sequence
- ORA-30926: unable to get a stable set of rows in the source tables
- 中国象棋程序的设计与实现(十一)--第2次回答CSDN读者的一些问题
- 企业青睐什么样的产品经理
- { }soj1308
- ios开发启动页面
- (DS1.5.10)POJ 1019 Number Sequence(确定一个数字序列中某一个位置上的数字)
- discuz 转换nginx服务器后 url重写规则
- PHP POST数组有上限? max_input_vars!
- 用VB快速读取TextBox第N行的数据
- 常见hash算法的原理
- 设计中的手写识别(输入法)笔画--中篇
- Scancode Map 自定义Keyboard
- Leetcode: Candy
- row_number rank dense_rank函数