Champernowne’s constant
An irrational decimal fraction is created by concatenating the positive integers:
0.123456789101112131415161718192021…
It can be seen that the 12th digit of the fractional part is 1.
If dn represents the n^th digit of the fractional part, find the value of the following expression.
d1×d10×d100×d1000×d10000×d100000×d1000000
钱珀瑙恩常数
将所有正整数连接起来构造的一个十进制无理数如下所示:
0.123456789101112131415161718192021…
可以看出小数点后第12位数字是1。
如果dn表示上述无理数小数点后的第n位数字,求下式的值:
d1×d10×d100×d1000×d10000×d100000×d1000000
直接用一个字符串来进行存储相应的数,从第一位开始;然后往后接上,最后直接用位置访问就可以获得那位的数字:
#include <stdio.h> #include <math.h> #include <string.h> #define MAX_N 1000000 int main() { int len = 1; char str[MAX_N + 20] = {0}; int n = 1; while (len < MAX_N + 10) { len += sprintf(str + len, "%d", n); n++; } int ans = 1; for (int i = 0; i <= 6; i++) { ans *= str[(int)pow(10, i)] - '0'; } printf("%d\n", ans); return 0; }
最终答案:210