#include <cstdio>
#include <cstring> using namespace std; int sum[];
//sum[i]表示尾数为i的组最大可达到的数字个数
void init()
{
sum[] = ;
sum[] = ;
sum[] = ;
sum[] = ;
sum[] = ;
sum[] = ;
sum[] = ;
} //找到最后对应的组数属于的范围是在多少位的整数上,返回整数的位数
int get_bit(int &n)
{
for(int i = ; i< ; i++){
if(n > sum[i] && n <= sum[i+])
{
n -= sum[i];
return i+;
}
}
return -;
}
//返回g这个组中对应的数字的个数
int get_num_of_group(int g)
{
int t = ;
int k = ;
int ret = ;
while(g >= t){
ret += t/**k;
t *= ;
k++;
}
ret += (g - t/ + ) * k;
return ret;
} int main()
{
int T;
//cout<<get_num_of_group(100)<<endl;
scanf("%d" , &T);
init();
while(T--){
int n;
scanf("%d" , &n);
int group = ;
int cnt = ;
//group表示第几组,cnt表示对应组中含有的数字的个数
while(){
if(n <= cnt) break;
n -= cnt;
group++;
cnt = get_num_of_group(group);
}
//cout<<"group"<<group<<" "<<n<<endl;
int t = get_bit(n);
//cout<<"t " <<t<<endl;
int st;
//st表示从几位数字开始找起,如st = 10,表示最后这个点属于10-99范围
if(t < ) st = , t = ;
else
{
st = ;
for(int i= ; i<=t- ; i++)
st *= ; }
//cout<<"st " <<st<<endl;
while(n > t){
n -= t;
st++;
}
n = t + - n;
int ans = st%;
for(int i= ; i<=n ; i++){
ans = st%;
st /= ;
}
printf("%d\n" , ans);
}
// cout<<9 + 2*90 + 3*900<<endl;
return ;
}

POJ 1019 数学题的更多相关文章

  1. Poj 1019 Number Sequence( 数据分析和操作)

    一.题目大意 有这样一个序列包含S1,S2,S3...SK,每一个Si包括整数1到 i.求在这个序列中给定的整数n为下标的数. 例如,前80位为1121231234123451234561234567 ...

  2. poj 1019 Number Sequence 【组合数学+数字x的位宽函数】

    题目地址:http://poj.org/problem?id=1019 Number Sequence Time Limit: 1000MS   Memory Limit: 10000K Total ...

  3. POJ 1019:Number Sequence 二分查找

    Number Sequence Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 36013   Accepted: 10409 ...

  4. POJ 1019 Number Sequence

    找规律,先找属于第几个循环,再找属于第几个数的第几位...... Number Sequence Time Limit: 1000MS Memory Limit: 10000K Total Submi ...

  5. poj 1019

    懂了 题意是给一串 1 12 123 1234 12345 123456 ....这样的数字问第 i个数字是多少 Sample Input 2 8 3 Sample Output 2 2 #inclu ...

  6. POJ 1019 Number Sequence 解读

    这是一个看似简单,其实很难受. 本来我想发挥它的标题轨道基础.没想到反被消遣-_-|||. 看它在个人基础上,良好的数学就干脆点,但由于过于频繁,需求将被纳入全,因此,应该难度4星以上. 方法就是直接 ...

  7. Number Sequence POJ - 1019 递推 数学

    题意 1 12 123 1234 12345 ....这样的序列 问第n位数字是几   是数字! 1-9! 思路:递推关系 主要是位数的计算   用a[i]=a[i-1]+(int)log10((do ...

  8. POJ - 1019 Number Sequence (思维)

    https://vjudge.net/problem/POJ-1019 题意 给一串1 12 123 1234 12345 123456 1234567 12345678 123456789 1234 ...

  9. Number Sequence(poj 1019)

    题意: 有一串数字串,其规律为 1 12 123 1234 12345 123456 1234567 12345678 123456789 12345678910 1234567891011 1234 ...

随机推荐

  1. poj Find a multiple【鸽巢原理】

    参考:https://www.cnblogs.com/ACShiryu/archive/2011/08/09/poj2356.html 鸽巢原理??? 其实不用map但是习惯了就打的map 以下C-c ...

  2. Linux安装FTP文档服务器

    1.检查是否安装 了vsftpd,如果未安装 则安装vsftpd. 1)查看系统中是否安装了vsftpd,可以通过执行命令 :rpm -qa | grep vsftpd 2)如果没有安装 vsftpd ...

  3. native2ascii命令详解

    1.native2ascii简介:    native2ascii是sun java sdk提供的一个工具.用来将别的文本类文件(比如*.txt,*.ini,*.properties,*.java等等 ...

  4. Spring Boot (30) 上传文件

    文件上传 上传文件和下载文件是Java Web中常见的一种操作,文件上传主要是将文件通过IO流传输到服务器的某一个文件夹下. 导入依赖 在pom.xml中添加上spring-boot-starter- ...

  5. SpringBoot 2.x (1):手动创建项目与自动创建项目

    SpringBoot 2.x基于Spring Framework 5.x 环境需求如下: JDK1.8或以上 Maven3.2或以上 这里我使用的是Eclipse,IDEA这个工具很强大,但不习惯它 ...

  6. JDBC和数据库连接池

    JDBC是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成. ​ ● JDBC ​ ● C3P0 ​ ● DRUID 一.JDBC ...

  7. JavaScript(十)基本包装类

    基本包装类都具有对象的基本方法     toString   和 valueOf Number 数字是原始类型,那为啥还有方法? 因为他在执行方法的时候会创建一个对应的包装类对象,这个对象有这种方法, ...

  8. BPI-M1P(全志A20)刷Android启动卡之后启动的过程

    http://blog.csdn.net/wb4916/article/details/78031511BPI-M1P(全志A20)刷Android启动卡之后启动的过程 BPI-M1P(全志A20)刷 ...

  9. (转)Eclipse在线配置Hibernate Tools

    http://blog.csdn.net/yerenyuan_pku/article/details/52733403 查看Eclipse版本 Eclipse针对程序开发有很多发行版本,除了开发语言的 ...

  10. codeforces_300C_组合数_快速幂

    C. Beautiful Numbers time limit per test 2 seconds memory limit per test 256 megabytes input standar ...