洛谷 P1035级数求和题解--zhengjun

题目描述

已知:\(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\)

思路

难得一道极水的模拟题

一个while就解决了

不多说,代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
	double sum=0;
	double n=0;
	int k;
	cin>>k;
	while(sum<=k)
	{
		n++;
		sum+=1.0/n;
	}
	cout<<n;
	return 0;
}

谢谢-zhengjun

posted @ 2022-06-10 19:07  A_zjzj  阅读(28)  评论(0编辑  收藏  举报