POJ_1019
2010-04-13 15:37
190 查看
注意要使用 unsigned int类型, 还有就是log10((double) i) + 1能够求出数字i的位数, 当然也可以用连除10的方式得到...
还有就是pow()的两个参数都是float类型的, 需要强制转换一下...
还有就是pow()的两个参数都是float类型的, 需要强制转换一下...
#include <iostream> #include <cmath> using namespace std; int getBit(unsigned int index) { unsigned int bit; int i; int segCount = 0; unsigned int totalCount = 0; unsigned int segPos = 0; /*找到i所在的数段*/ for(i=1; ; i++) { segCount += log10((double)i) + 1; totalCount += segCount; if(totalCount >= index) break; } /*segPos是i所在的数段的开始*/ segPos = totalCount - segCount; /*在i所在的数段中找到i所在的数字*/ for(i=1; ; i++) { segPos += log10((double)i) + 1; if(segPos >= index) break; } bit = (i / (int)(pow((float)10, (float)(segPos - index)))) % 10; return bit; } int main() { int caseCount = 0; cin>>caseCount; while(caseCount--) { int bit; unsigned int index = 0; cin>>index; bit = getBit(index); cout<<bit<<endl; } return 0; }
相关文章推荐
- POJ1019:Number Sequence
- poj1019 Number Sequence
- POJ 1019 Number Sequence <递推关系>
- POJ-1019
- Number Sequence POJ - 1019
- POJ 1019
- POJ 1019:Number Sequence 二分查找
- POJ 1019 Number Sequence (循环递增序列的的第K个值)
- poj_1019 Number Sequence(数学)
- poj 1019 Number Sequence
- 【poj1019】 Number Sequence
- POj 1019 number sequence(数学)
- POJ_1019_Number Sequence
- POJ1019-Number Sequence
- POJ 1019
- poj1019--Number Sequence题解
- POJ1019————Number Sequence
- POJ 1019 模拟思路题 化整为零
- POJ 1019 number sequece数学处理
- POJ 1019 Number Sequence (数学+预处理 循环递增序列第k位数字)