【P1035】级数求和

简介: 【P1035】级数求和

题目描述

已知: Sn= 1+1/2+1/3+…+1/n。显然对于任意一个整数 K ,当 n 足够大的时候, Sn 大于 K 。

现给出一个整数 K(1≤k≤15 ),要求计算出一个最小的 n ;使得 Sn>K。

输入输出格式

输入格式:

一个正整数 K

输出格式:

一个正整数 N

 

最开始用的是float来表示Sn,结果有些测试(大数)没有通过,

#include<iostream>
int main()
{
  int k;
  std::cin >> k;
  float s = 0.0;
  int i = 1;
  for (i = 1;s<=k ; i++)
    s += 1.0 / i;
 
  std::cout << i-1;
  return 0;
}

于是改成double,通过。

#include<iostream>
int main()
{
  int k;
  std::cin >> k;
  double s = 0.0;
  int i = 1;
  for (i = 1;s<=k ; i++)
    s += 1.0 / i;
 
  std::cout << i-1;
  return 0;
}



相关文章
|
5月前
|
Python
累加求和 1~ n求和
累加求和 1~ n求和
102 4
|
8月前
DAY-4 | 力扣 - 求自身以外数组的乘积:区间划分,左右累乘,巧求乘积
该文档是关于LeetCode上的一道题目“Product of Array Except Self”的题解。提供了两种解题方法,一是暴力破解,即计算所有数的乘积后再逐个除以当前元素;二是左右累乘法,通过两次遍历数组分别计算左侧和右侧元素的乘积,避免了除法操作。其中,左右累乘法更优,代码实现中展示了这种方法。
60 1
|
8月前
|
人工智能
游游的选数乘积
游游的选数乘积
75 3
wustojc3010快速求和
wustojc3010快速求和
66 0
|
C++
C++ 超大整数相加、相乘的精确求解,以及10000的阶乘
C++ 超大整数相加、相乘的精确求解,以及10000的阶乘
140 0
|
人工智能 算法 BI
【14. 区间和(离散化)】
离散化 - 假设一共有10&lt;sup&gt;5&lt;/sup&gt;个数,每个数的值域是0~10&lt;sup&gt;9&lt;/sup&gt;,有些题目可能会使用这些值下标来做,但是我们如果开一个长度是10&lt;sup&gt;9&lt;/sup&gt;数组是不现实的。这时候就需要用到`映射`。 - 我们需要把这个序列映射到从1开始的`连续自然数`,这个过程就叫离散化。
125 0
【14. 区间和(离散化)】
|
算法 Python
7-2 多项式求和 (10 分)
7-2 多项式求和 (10 分)
187 0