酷代码 AI
菜单

题目描述 对于小数 : 的最小值为多少时, 的值会大于Sx=1/1+1/2+1/3+.....................+1/x ? 其中: 输入 输入x 在 范围[0.0, 15.0]之间。 输出 输出 样例输入 复制 15.0 样例输出 复制 1835421 回答篇幅:简单明了

```c #include <stdio.h> double S(double x) { double sum = 0.0; for (int k = 0; k <= 15; k++) { sum += 1.0 / (x + k); } return sum; } int main() { double y; scanf("%lf", &y); if (y <= 0.0) { printf("0\n"); return 0; } double left = 1e-15, right = 1e9; for (int iter = 0; iter < 80; iter++) { double mid = (left + right) * 0.5; if (S(mid) > y) { left = mid; } else { right = mid; } } double x0 = (left + right) * 0.5; long long ans = (long long)(1.0 / x0); printf("%lld\n", ans); return 0; } ``` ```pascal program solve; var y, left, right, mid, x0: double; iter: integer; ans: int64; function S(x: double): double; var k: integer; sum: double; begin sum := 0.0; for k := 0 to 15 do sum := sum + 1.0 / (x + k); S := sum; end; begin readln(y); if y <= 0.0 then begin writeln(0); exit; end; left := 1e-15; right := 1e9; for iter := 1 to 80 do begin mid := (left + right) * 0.5; if S(mid) > y then left := mid else right := mid; end; x0 := (left + right) * 0.5; ans := trunc(1.0 / x0); writeln(ans); end. ``` [2025-12-17 17:55:12 | AI问答 | 467点数解答]

服务商
相关提问
发财导航,免费问AI
实用工具查看更多