Ultraviolet A-10706 Number Sequence

Source: Internet
Author: User
Tags integer numbers

First find the set in which it is located, then find the element in the Set, and finally find the number of digits of the element.

#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>using namespace std;long long table[100010];long long psum[100010];int n=100000;void maketable(){    int i,flag=1,x=0;    for(i=1;i<=n;i++)    {        if(i%flag==0)        {            flag*=10;            x++;        }        table[i]=table[i-1]+x;        psum[i]+=table[i]+psum[i-1];    }}int main(){    //freopen("in","r",stdin);    //freopen("out","w",stdout);    maketable();    int T,i,t;    long long x;    char s[100];    cin>>T;    while(T--)    {        cin>>x;        i=lower_bound(psum,psum+n,x)-psum;        if(psum[i]==x)            cout<<i%10<<endl;        else        {            x-=psum[i-1];            i=lower_bound(table,table+n,x)-table;            if(table[i]==x)                cout<<i%10<<endl;            else            {                x-=table[i-1];                sprintf(s,"%d",i);                cout<<s[x-1]<<endl;            }        }    }    return 0;}

UV-10706

Number Sequence
Time limit:3000 Ms   Memory limit:Unknown   64bit Io format:% LLD & % LlU

Submitstatus

Description

Problem B
Number Sequence
Input:
Standard Input
Output:Standard output
Time limit:1 second

A single positive integerIIs given. Write a program to find the digit located in the positionIIn the sequence of Number GroupsS1s2... SK. Each groupSKConsists of a sequence of positive integer numbers ranging from1ToK, Written one after another. For example, the first80Digits of the sequence are as follows:

11212312341234512345612345671234567812345678912345678910123456789101112345678910

Input

The first line of the input file contains a single integerT (1 <= T <= 25), The number of test cases, followed by one line for each test case. The line for a test case contains the single integerI (1 <= I <= 2147483647)

 

Output

There shoshould be one output line per test case containing the digit located in the positionI.

 

Sample input output for sample input

2

8

3

2

2

Problem Source: Iranian contest

Special thanks: Shahriar Manzoor, EPS.

Source

Root: aoapc I: Beginning algorithm contests (rujia Liu): Volume 4. Algorithm Design
Root: Competitive programming 2: This increases the lower bound of programming contests. Again (Steven & Felix Halim): Problem Solving Paradigms: Divide and conquer-Binary Search

Root: Competitive programming 3: the new lower bound of programming contests (Steven & Felix Halim): Problem Solving Paradigms: Divide and conquer: Binary Search

Ultraviolet A-10706 Number Sequence

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.