欧拉40题

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 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

初猿°

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值