#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. unable to unroll loop 报错

    unable to unroll loop, loop does not appear to terminate in a timely manner (1024 iterations) 原本代码 f ...

  2. bzoj 1827: [Usaco2010 Mar]gather 奶牛大集会【树形dp】

    不能用read会TLE!!不能用read会TLE!!不能用read会TLE!! 一开始以为要维护每个点,线段树写了好长(还T了-- 首先dfs一遍,求出点1为集会地点的答案,处理处val[u]为以1为 ...

  3. Akka源码分析-Cluster-ClusterClient

    ClusterClient可以与某个集群通信,而本身节点不必是集群的一部分.它只需要知道一个或多个节点的位置作为联系节点.它会跟ClusterReceptionist 建立连接,来跟集群中的特定节点发 ...

  4. 字符类型C++(ascll码表)

    ascll码: 序号 字符 序号 字符 序号 字符 序号 字符 序号 字符 序号 字符 32 空格 48 0 64 @ 80 P 96 ` 112 p 33 ! 49 1 65 A 81 Q 97 a ...

  5. 最大化最小值poj2456Aggressive cows

    Aggressive cows Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 15528   Accepted: 7440 ...

  6. Oracle随机选择一条记录SQL

    Oracle随机选择一条记录SQL:

  7. 震惊!double输入输出的秘密竟然是~

    遇到了一个神奇的事情: double r = 3.0; printf("%lf", r);//0.000000 double遇到printf函数竟然是用%f输出的! scanf函数 ...

  8. Generating RSA keys in PKCS#1 format in Java--转

    原文地址:https://stackoverflow.com/questions/7611383/generating-rsa-keys-in-pkcs1-format-in-java When I ...

  9. Python之数据聚合与分组运算

    Python之数据聚合与分组运算 1. 关系型数据库方便对数据进行连接.过滤.转换和聚合. 2. Hadley Wickham创建了用于表示分组运算术语"split-apply-combin ...

  10. python自动化--语言基础二运算符、格式化输出、条件语句、循环语句、列表、元组

    运算符包括:算术运算符.比较运算符.赋值运算符.逻辑运算符.成员运算符.身份运算符. 算术运算符 %   取模(余数) //  取相除的整数部分 /   (5/2=2.5) 比较运算符 ==  等于 ...