【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;
}



相关文章
|
4月前
|
Python
累加求和 1~ n求和
累加求和 1~ n求和
86 4
|
6月前
|
存储 机器学习/深度学习 算法
$求两个对称矩阵之和与乘积
$求两个对称矩阵之和与乘积
|
7月前
|
人工智能
游游的选数乘积
游游的选数乘积
66 3
|
7月前
L1-048 矩阵A乘以B
L1-048 矩阵A乘以B
59 0
|
7月前
|
Java C++ Python
计算n阶行列式
计算n阶行列式
110 0
wustojc3010快速求和
wustojc3010快速求和
62 0
7-93 矩阵A乘以B
7-93 矩阵A乘以B
129 0
|
人工智能 算法 BI