题目链接:https://www.luogu.com.cn/problem/P1035

题目描述

已知:\(S_n= 1+1/2+1/3+…+1/n\)。显然对于任意一个整数 \(k\),当 \(n\) 足够大的时候,\(S_n>k\)。

现给出一个整数 \(k\),要求计算出一个最小的 \(n\),使得 \(S_n>k\)。

输入格式

一个正整数 \(k\)

输出格式

一个正整数 \(n\)

样例输入1

1

样例输出1

2

说明/提示

【数据范围】

对于 \(100\%\) 的数据,\(1\le k \le 15\)

题解

我道题目其实是找最小的满足 \(\sum_{i=1}^n S_i > k\) 的 \(n\) 。

我们可以开一个循环来模拟这个问题。

我们只需要一开始开两个变量:

  • 变量 \(S\) 表示当前和 \(S_n\)(初始时 \(S=0\));
  • 变量 \(n\) 表示当前的坐标 \(n\)(初始时 \(n=1\))。

然后 \(n\) 从 \(1\) 开始遍历(即 \(n = 1、2、3、 \cdots\) 这样遍历)。

每一次循环内我们让 \(S\) 加上 \(\lfloor \frac{1}{n} \rfloor\) 。

直到第一次满足 \(S > k\) 时,我们输出此时的 \(n\) 并结束我们的程序即可。

实现代码如下:

#include <bits/stdc++.h>
using namespace std;
double k, S; // 因为我们在计算S和k的时候S有可能是小数,所以这里都用double来保存
int n = 1; // n我还是用int,但是我在处理的时候会将其转换成double,
// 这样操作看上去有些多此一举,但是也是出于我的习惯囧。其实n也可以定义成double类型
int main() {
cin >> k;
while (true) {
S += 1.0 / (double) n; // 注意,表示常实数1最好加一个“,0”
if (S > k) {
cout << n << endl;
break;
}
n ++; // n要自增一,以进行下一步处理
}
return 0;
}

洛谷P1035 级数求和 题解 简单模拟的更多相关文章

  1. 洛谷P1035 级数求和

    #include <iostream> using namespace std; int main(){ long k,i; cin >> k; double s=0.0; ; ...

  2. 洛谷P1563 玩具谜题 简单模拟

    没意义,注意方向别判错. Code: #include<cstdio> #include<cstring> using namespace std; const int max ...

  3. 洛谷——P1035 级数求和

    https://www.luogu.org/problem/show?pid=1035 题目描述 已知:Sn= 1+1/2+1/3+…+1/n.显然对于任意一个整数K,当n足够大的时候,Sn大于K. ...

  4. Java实现 洛谷 P1035 级数求和

    import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = ...

  5. 洛谷NOIp热身赛题解

    洛谷NOIp热身赛题解 A 最大差值 简单树状数组,维护区间和.区间平方和,方差按照给的公式算就行了 #include<bits/stdc++.h> #define il inline # ...

  6. 洛谷 P5594 【XR-4】模拟赛

    洛谷 P5594 [XR-4]模拟赛 洛谷传送门 题目描述 X 校正在进行 CSP 前的校内集训. 一共有 nn 名 OIer 参与这次集训,教练为他们精心准备了 mm 套模拟赛题. 然而,每名 OI ...

  7. 洛谷P2827 蚯蚓 题解

    洛谷P2827 蚯蚓 题解 题目描述 本题中,我们将用符号 ⌊c⌋ 表示对 c 向下取整. 蛐蛐国最近蚯蚓成灾了!隔壁跳蚤国的跳蚤也拿蚯蚓们没办法,蛐蛐国王只好去请神刀手来帮他们消灭蚯蚓. 蛐蛐国里现 ...

  8. 洛谷P1816 忠诚 题解

    洛谷P1816 忠诚 题解 题目描述 老管家是一个聪明能干的人.他为财主工作了整整10年,财主为了让自已账目更加清楚.要求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意.但是由于一些人 ...

  9. 【题解】洛谷P3952 [NOIP2017TG] 时间复杂度(模拟)

    题目来源:洛谷P3952 思路 纯模拟没啥可说的了 果然好复杂 参考了你谷一个40行代码 代码 #include<iostream> #include<cstdio> #inc ...

随机推荐

  1. Android 使用SystemBarTint设置状态栏颜色

    做项目时,发现APP的状态栏是系统默认的颜色,突然想到,为啥别的APP是自己设置的颜色(和APP本身很相搭),于是也想给自己的APP设置系统状态栏的颜色,更加美美哒... 搜了下,发现原来设置状态栏居 ...

  2. 异常解决:non-compatible bean definition of same name and class【com.xxx.xxx.XXX】

    昨天同事遇到这样一个问题,意思是spring找到 有相同的实现类名在不同的package目录下. 跟踪他的项目代码并未发现问题.   重新给他的maven项目进行maven install一下. 查看 ...

  3. H3C 命令行编辑功能

  4. jq获取单选框、复选框、下拉菜单的值

    1.<input type="radio" name="testradio" value="jquery获取radio的值" /> ...

  5. win10提示 磁盘包含不是“PARTITION_BASIC_DATA_GUID"类型的分区

    在win10创建新的磁盘分区的时候,有时候会提示 磁盘包含不是"PARTITION_BASIC_DATA_GUID"类型的分区 如果你试了其他方法都不凑效,那么看看你已经有几个盘( ...

  6. CODE FESTIVAL 2017 qual B D 101 to 010(dp)

    除非人品好,能碰巧想到思路,否则基本是做不出来dp的,除了那几个经典的dp模型.. 看了几个前几名的代码,还是t神的代码比较清晰.膜tourist 代码的思路和题解思路基本一致..... #inclu ...

  7. jq on绑定事件off移除事件

    https://www.cnblogs.com/sandraryan/ 以前用的是bind(); 后来更新后用的on (on() 方法是 bind().live() 和 delegate() 方法的新 ...

  8. Python--day72--ajax简介

    ajax的基本结构: <script> $("#b1").on("click", function () { $.ajax({ url: " ...

  9. Python--day70--ORM多对多的三种方式

  10. 前端开发之HTML

    前端 编程主要就是三部分:使用数据,存储数据和处理数据. 什么是前端: 前端就是使用数据的过程,通过规定的格式将服务端的数据在浏览器上更好的展示给用户. 前端的工具: HTML CSS 和 JavaS ...