码迷,mamicode.com
首页 > 其他好文 > 详细

POJ 1019 组合计数

时间:2014-10-19 15:42:30      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:http   io   os   ar   for   sp   2014   on   log   

链接: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\n",ans);
    }
    return 0;
}


POJ 1019 组合计数

标签:http   io   os   ar   for   sp   2014   on   log   

原文地址:http://blog.csdn.net/yuanchang_best/article/details/40262559

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!