P1035 级数求和 AC于2017.10.17 https://www.luogu.org/problem/show?pid=P1035

题目描述

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

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

输入输出格式

输入格式:

一个正整数K。

输出格式:

一个正整数N。

输入输出样例

输入样例#1: 

输入样例#1:

1

输出样例#1: 

2

说明

double

循环写法

#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
    int m;
    double i=0,s=0;
    scanf("%d",&m);
    while(s<=m)
    {
        i++;
        s+=1/i;		
    }
    printf("%.0f",i);	
    return 0;
}

递归写法

扫描二维码关注公众号,回复: 2438231 查看本文章
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int m;
double s;
int skcj(double n)
{
    s=s+(1/n);
    if(s>m)
    return n;
    return skcj(n+1);
}
int main()
{
    cin>>m;
    printf("%d",skcj(1));
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_41100192/article/details/81210311