zoukankan      html  css  js  c++  java
  • POJ 1019 组合计数

    链接:POJ 1019

    /*****************************************
         author       :  Grant Yuan
         time           :  2014/10/19 14:38
         source       :  POJ 1019
         algorithm:  组合计数
    ******************************************/
    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    #include <cstring>
    #include <cstdlib>
    #include <cmath>
    using namespace std;
    long long a[33000];
    long long s[33000];
    long long tt=2147483647;
    int t,n;
    void Get_a()
    {
        a[1]=s[1]=1;
        for(int i=2;i<=32000;i++)
        {
            a[i]=a[i-1]+(int)log10(i*1.0)+1;
            s[i]=s[i-1]+a[i];
            if(s[i]>tt) break;
        }
    }
    int  Get_ans()
    {
        int k,i;
       for(i=1;;i++)
          {
              if(s[i]>=n)  break;
          }
        int pos=n-s[i-1];
       int sum=0;
        for(i=1;;i++)
        {
            sum=sum+1+(int)log10(i*1.0);
          if(sum>=pos) break;
        }
         return (i)/(int)pow((double)10,sum-pos)%10;
    }
    int main()
    {
        scanf("%d",&t);
        memset(a,0,sizeof(a));
        memset(s,0,sizeof(s));
        Get_a();
        while(t--){
           scanf("%d",&n);
           int ans=Get_ans();
           printf("%d
    ",ans);
        }
        return 0;
    }
    


  • 相关阅读:
    java实验二
    实验1
    响应式站点设计之使用指南
    掌管一个网站?给你九条忠告
    在本地App上设计Web代码
    订阅
    下载站焦点图
    个性化电影频道js
    展开收起播放列表
    onoff组件
  • 原文地址:https://www.cnblogs.com/codeyuan/p/4254411.html
Copyright © 2011-2022 走看看