zoukankan      html  css  js  c++  java
  • hdu 1597 find the nth digit

    hdu 1597 find the nth digit

    Problem Description假设:
    S1 = 1
    S2 = 12
    S3 = 123
    S4 = 1234
    .........
    S9 = 123456789
    S10 = 1234567891
    S11 = 12345678912
    ............
    S18 = 123456789123456789
    ..................
    现在我们把所有的串连接起来
    S = 1121231234.......123456789123456789112345678912.........
    那么你能告诉我在S串中的第N个数字是多少吗?
      Input输入首先是一个数字K,代表有K次询问。
    接下来的K行每行有一个整数N(1 <= N < 2^31)。  Output对于每个N,输出S中第N个对应的数字.
      Sample Input61234510  Sample Output112124

    代码如下:G++

    #include<iostream>
    #include<cmath>
    using namespace std;
    int
     main()
    {

        long long
     t,n,s,i;
        cin>>t;
        while
    (t--)
        {

            cin>>n;
            for
    (i=sqrt(2*n);i>0;i--)
            {

                if
    (((i*(i+1))/2<n))
                    break
    ;
            }

            s=n-((i*(i+1))/2);
            if
    (s%9==0)
                cout<<9<<endl;
            else

                cout<<s%9<<endl;
        }

        return
     0;
    }

    //注意公式 1+2+。。。+x=(1+x)*x/2  的应用

  • 相关阅读:
    XML导入数据库
    文件流 +Excel导出
    LINQ
    Lambda
    多线程编程
    反射
    匿名类
    匿名类
    委托与事件
    ubuntu开放指定端口
  • 原文地址:https://www.cnblogs.com/crazyapple/p/2999511.html
Copyright © 2011-2022 走看看