洛谷P1035 级数求和 题解 简单模拟
题目链接: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 级数求和 题解 简单模拟的更多相关文章
- 洛谷P1035 级数求和
#include <iostream> using namespace std; int main(){ long k,i; cin >> k; double s=0.0; ; ...
- 洛谷P1563 玩具谜题 简单模拟
没意义,注意方向别判错. Code: #include<cstdio> #include<cstring> using namespace std; const int max ...
- 洛谷——P1035 级数求和
https://www.luogu.org/problem/show?pid=1035 题目描述 已知:Sn= 1+1/2+1/3+…+1/n.显然对于任意一个整数K,当n足够大的时候,Sn大于K. ...
- Java实现 洛谷 P1035 级数求和
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = ...
- 洛谷NOIp热身赛题解
洛谷NOIp热身赛题解 A 最大差值 简单树状数组,维护区间和.区间平方和,方差按照给的公式算就行了 #include<bits/stdc++.h> #define il inline # ...
- 洛谷 P5594 【XR-4】模拟赛
洛谷 P5594 [XR-4]模拟赛 洛谷传送门 题目描述 X 校正在进行 CSP 前的校内集训. 一共有 nn 名 OIer 参与这次集训,教练为他们精心准备了 mm 套模拟赛题. 然而,每名 OI ...
- 洛谷P2827 蚯蚓 题解
洛谷P2827 蚯蚓 题解 题目描述 本题中,我们将用符号 ⌊c⌋ 表示对 c 向下取整. 蛐蛐国最近蚯蚓成灾了!隔壁跳蚤国的跳蚤也拿蚯蚓们没办法,蛐蛐国王只好去请神刀手来帮他们消灭蚯蚓. 蛐蛐国里现 ...
- 洛谷P1816 忠诚 题解
洛谷P1816 忠诚 题解 题目描述 老管家是一个聪明能干的人.他为财主工作了整整10年,财主为了让自已账目更加清楚.要求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意.但是由于一些人 ...
- 【题解】洛谷P3952 [NOIP2017TG] 时间复杂度(模拟)
题目来源:洛谷P3952 思路 纯模拟没啥可说的了 果然好复杂 参考了你谷一个40行代码 代码 #include<iostream> #include<cstdio> #inc ...
随机推荐
- Android ListView显示底部的分割线
有些时候,我们会提出这样的需求,希望ListView显示底部(顶部)的分割线,这样做,会使得UI效果更加精致,如下图所示: 如果搜索资料,大家会搜到一堆相关的方法,最多的莫过于设置listview的f ...
- OpenStack组件系列☞Keystone
Keystone(OpenStack Identity Service)是 OpenStack 框架中负责管理身份验证.服务规则和服务令牌功能的模块.用户访问资源需要验证用户的身份与权限,服务执行操作 ...
- CI框架下 新浪微博登录接口完整版
https://www.cnblogs.com/yznyzcw/p/3756622.html#top 说明:本贴只适合CI框架.功能实现:登录接口跳转链接成功,获取用户信息(包括最重要的u_id)成功 ...
- 洛谷 1131 [ZJOI2007] 时态同步
题目描述 小Q在电子工艺实习课上学习焊接电路板.一块电路板由若干个元件组成,我们不妨称之为节点,并将其用数字1,2,3….进行标号.电路板的各个节点由若干不相交的导线相连接,且对于电路板的任何两个节点 ...
- HTML的优化
HTML的优化 : 1).h标签的使用: 要注意的是,不论任何页面,h1标签只能出现一次,它是当前页面的主标题,权重最高, 所以要慎用 . 一般情况下,如果有关键词的话最好是在h1里面出现. h2是表 ...
- git pull 和git fetch区别?
git:从远程分支获取最新的版本至本地有两个命令. git fetch 相当于从远程获取最新的版本至本地,但不会自动merge git pull 相当于从远程获取最新的版本并merge至本地
- JavaScript 全国级省市县联动
<div class="right_content clearfix"> <h3 class="common_title2">收货地址& ...
- Python--day27--几个内置方法:__repr__()/__str__()/__del__()/__call__()/__getitem__/__setitem/delitem/__new__/__eq__/__hash__
repr方法() 双下方法__str__: 打印对象就相当于打印对象.__str__ __repr__(): __repr__是__str__的备胎,没有__str__的时候,就调用__repr__: ...
- Nuget 通过 dotnet 命令行发布
在开发完成一个好用的轮子就想将这个轮子发布到 nuget 让其他小伙伴可以来使用,但是 nuget.org 的登陆速度太慢,本文介绍一个命令行发布的方法,通过命令行发布的方法可以配合 Jenkins ...
- 访问HTML可以,访问PHPfile not found
www目录的所有者和所属组都改为nginx用户试一下. 参考命令: chown nginx.nginx /home/www ps aux |grep nginx 看一下您的nginx是以哪个用户的 ...