luogu1035 级数求和(NOIP2002普及组第1题)

luogu1035  级数求和(NOIP2002普及组第1题)

时空限制    1000ms/128MB

题目描述

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

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

输入输出格式

输入格式:

一个正整数K。

输出格式:

一个正整数N。

输入输出样例

输入样例#1:

1

输出样例#1:

2

 

代码

法一:while

#include
using namespace std;

int main(){
	int k,n=0;
	double Sn=0;
	cin>>k;
	while (Sn<=k){
		n++;
		Sn+=1.0/n;
	}
	cout<

法二:for

#include
using namespace std;

int main(){
	int K,n=0;
	double Sn=0;
	cin>>K;
	for ( ; Sn<=K; ){
		n++;
		Sn += 1.0/n;
	}
	cout<

你可能感兴趣的:(循环结构,NOIP普及组)