poj解题报告——1019
来源:互联网 发布:做原油的软件 编辑:程序博客网 时间:2024/04/30 03:34
这题是组合数学啊,题意是给1、12、123、1234、12345、123456 ……这样的数字,问第i个数字是多少。这题的难点在于第i个数与第i-1个数的位数差不定,可以利用公式:(int)log10(double(i))+1,当增加的数字是10的幂次关系时个数会变化。这样操作起来会方便多,而且打表会更好一点。
代码如下
#include<stdio.h>
#include<math.h>unsigned int a[31270],s[31270];
void reset()
{
int i;
a[1]=1;
s[1]=1;
for(i=2;i<31270;i++)
{
a[i]=a[i-1]+(int)log10((double)i)+1;
s[i]=s[i-1]+a[i];
}
}
void main()
{
int t,n,i,k,tmp,pos;
scanf("%d",&t);
reset();
while(t--)
{
scanf("%d",&n);
i=1;
while(s[i]<n)
i++;
pos=n-s[i-1];
tmp=0;
for(i=1;tmp<pos;i++)
{
tmp+=(int)log10((double)i)+1;
}
k=tmp-pos;
printf("%d\n",(i-1)/(int)pow(10.0,k)%10) ;
}
}
0 0
- poj解题报告——1019
- POJ 1019 解题报告
- POJ 1088 滑雪——解题报告
- POJ 1047——解题报告
- poj解题报告——poj1006
- poj解题报告——1032
- poj解题报告——1061
- poj解题报告——1450
- poj解题报告——1002
- poj解题报告——2109
- poj解题报告——1218
- poj解题报告——1250
- poj解题报告——1012
- poj解题报告——3299
- poj解题报告——2209
- poj解题报告——2406
- poj解题报告——2242
- poj解题报告——1401
- 第十三周项目 2 成绩处理
- perl 基本语法介绍
- shell基本脚本编译
- SlidingMenu+ActionBar+Fragment实现
- ASP:把access数据库中的数据导入到Excel中
- poj解题报告——1019
- 表空间使用率,备忘
- 认识 C++ 中的 explicit 关键字
- 【源代码】一键分享各个社交平台_android
- Cognos report studio排序问题
- xcode c++ 编程错误 2
- 百度天气API详解
- 【JavaSE】方法重载和重写
- 最小生成树Prime算法