23-10-12-模拟赛题解

文章发布时间:

最后更新时间:

文章总字数:
261

预计阅读时间:
1 分钟

When I’m away from you,
I’m happier than ever.
Wish I could explain it better,
I wish it wasn’t true.

T1. SYOJ #26

老师的考验

  没学过数学导致的找 5e6 循环节找了一个半小时。

  看了正解代码后感觉是很有意思的一道题,巧妙地暴露了我一些数学漏洞和大脑缺陷。

【大体思路】

  数学

【详解】

  要求 的最高位,我们不妨设它的位数是 ,就可以把答案写成 的形式。

  然后把 进行一个表示:

  再把它代回原式,分子也换成以 为底的对数,式子就变成了这样:

  最后的最后就是求这个式子了:

【代码】

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
typedef long long ll;
typedef long double ld;
ld lg2 = log10(2), n;
int t;
int main() {
scanf("%d", &t);
while (t--) {
scanf("%Lf", &n);
ll p = (ld)n * lg2;
printf("%d\n", (int)pow(10, (ld)n * lg2 - p));
}
return 0;
}