一、题目链接
http://noi.openjudge.cn/ch0105/27/
二、解题思路
◎ 在级数之和Sn小于等于对比的整数K时,循环处理如下:
→ 增加一个可加项,并将这个可加项累加到级数之和Sn上。
三、实施步骤
◎ 首先,定义并输入int类型的整数K,代表对比的整数;定义int类型的整数n,代表满足条件的最小的n,初始时n为0;
◎ 其次,定义double类型的浮点数Sn,代表级数之和,初始时Sn为0;
◎ 然后,通过标记n代表可加项的项数,在Sn<=K时,循环处理如下:
→ 令n++,Sn=Sn+1.0/n;
◎ 最后,输出n。
四、C++程序
#include <iostream>
using namespace std;
int main()
{
int K; // 对比的整数
cin >> K;
int n = 0; // 满足条件的最小的n,初始时为0
double Sn = 0; // 级数之和,初始时为0
/* 在级数之和Sn小于等于对比的整数K时 */
while (Sn <= K)
{
n++; // 增加一个可加项
Sn = Sn + 1.0 / n; // 将新增的可加项累加到级数之和Sn上
}
cout << n;
return 0;
}