[NOIP2002 普及组] 级数求和

[NOIP2002 普及组] 级数求和

题目描述

已知: S n = 1 + 1 2 + 1 3 + ... + 1 n S_n= 1+\dfrac{1}{2}+\dfrac{1}{3}+...+\dfrac{1}{n} Sn=1+21+31+...+n1。显然对于任意一个整数 k k k,当 n n n 足够大的时候, S n > k S_n>k Sn>k。

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

输入格式

一个正整数 k k k。

输出格式

一个正整数 n n n。

样例 #1

样例输入 #1

1

样例输出 #1

2

提示

【数据范围】

对于 100 % 100\% 100% 的数据, 1 ≤ k ≤ 15 1\le k \le 15 1≤k≤15。

【题目来源】

NOIP 2002 普及组第一题

题解

就是写一个死循环,不断地尝试n,比如当k = 1时,只要sn 加两次 第一次 1/1 第二次再加个1/2 就是1.5了 1.5就比1大 这样的话就终止,返回对应的这个i(即所谓的n),唯一要注意的就是注意变量强制类型转换,(1/i)这里肯定要强转的,不然你sn一直都是1。

cpp 复制代码
#include<bits/stdc++.h>

using namespace std;

int main(){
	double sn = 0;
	int k;
	cin >> k;
	for(int i = 1;;i++){
		sn += (double)1/i;
		if(k < sn){
			cout << i;
			return 0;
		}
	}
}
相关推荐
Victoria.a1 小时前
string类详解
数据结构·c++
转调3 小时前
第九章:内存池的调整与测试
c++·内存池
XY_墨莲伊4 小时前
【算法设计与分析】实验5:贪心算法—装载及背包问题
c语言·数据结构·c++·算法·贪心算法·排序算法
Happy_Traveller5 小时前
三角形的最大周长(976)
数据结构·算法·leetcode
水蓝烟雨5 小时前
[HOT 100] 2824. 统计和小于目标的下标对数目
算法·hot 100
KuaCpp5 小时前
搜索与图论复习2最短路
c++·算法·图论
weixin_307779135 小时前
Python获取能唯一确定一棵给定的树的最少数量的拓扑序列
数据结构·python
Lenyiin5 小时前
《 C++ 点滴漫谈: 二十五 》空指针,隐秘而危险的杀手:程序崩溃的真凶就在你眼前!
c++·nullptr·lenyiin·c++关键字
咒法师无翅鱼6 小时前
【leetcode详解】T598 区间加法
算法·leetcode·职场和发展
砂糖はいかがですか。6 小时前
关于合并两个有序链表
数据结构·算法·链表