zoukankan      html  css  js  c++  java
  • Digit(湘潭大学比赛)

     题目链接: 点击打开链接


    中文问题目就不解释了。

    思路,找到这个数对应的的数字是多少,然后对这个数取对应的位置。


    步骤:先打表打出一位数字对应字符串的长度,两位数的,到8,9就差不多了。

    先确定给定的n是哪个位数的数字,这样可以确定n指的是这个数字的第几位。OVER


    #include<stdio.h>
    #include<algorithm>
    #include<math.h>
    #include<iostream>
    
    using namespace std;
    typedef long long int LL;
    
    
    LL wei[100];
    
    void init()
    {
        LL a=1,b=9;
        wei[0]=0;
        for(int i=1; i<=13; i++)
        {
            wei[i]=wei[i-1]+i*(b-a+1);//cout<<wei[i]<<endl;
            a=a*10,b=b*10+9;
        }
    }
    int solve(int n,int w)
    {
        int num=1;
        for(int i=1;i<w;i++)
            num*=10;
        num+=(n-1)/w;
    //    printf("%d
    ",num);
        int dw=w-((n-1)%w);
    //    cout<<"weizhi="<<dw<<endl;
        for(int i=1; ; i++)
        {
            if(dw==i) return num%10;
            num/=10;
        }
    }
    
    int main()
    {
        int ncase;
        init();
        cin>>ncase;
        while(ncase--)
        {
            int n;
            cin>>n;
            int i;
            for(i=0;  ; i++)
            {
                if(n<=wei[i]) break;
            }
            n-=wei[i-1];
    
            int ans=solve(n,i);
            printf("%d
    ",ans);
        }
        return 0;
    }


  • 相关阅读:
    c#中@的3种作用
    iOS7 各种问题解决
    时钟
    京东APP(部分)-安卓
    博弈取石子
    博弈取牌
    年月日
    猪(恶作剧程序)
    字符统计
    奇偶类约瑟夫
  • 原文地址:https://www.cnblogs.com/coded-ream/p/7207972.html
Copyright © 2011-2022 走看看