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

 已知:Sn=1+1/2+1/3+…+1/n。显然对于任意一个整数K,当n足够大的时候,Sn大于K。   现给出一个整数K(1<=...  已知:Sn = 1 + 1/2 + 1/3 + … + 1/n。显然对于任意一个整数K,当n足够大的时候,Sn大于K。
   现给出一个整数K(1 <= K <= 15),要求计算出一个最小的n,使得Sn > K。
用C语言实现
展开
 我来答
风若远去何人留
推荐于2018-04-06 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450106
专业C/C++软件开发

向TA提问 私信TA
展开全部
#include <stdio.h>
int main()
{
double s = 0;
int i;
int k;

scanf("%d",&k);
for(i = 1; ; i ++)
{
s+=1.0/i;
if(s>=k)break;
}

printf("%d\n", i);

return 0;
}
更多追问追答
追问
好厉害哦
追答
给个采纳呗
boyart
2019-06-07
知道答主
回答量:21
采纳率:0%
帮助的人:4.1万
展开全部
#include <iostream>
using namespace std;
int main()
{
    int i,n;
   double s=0.0,k;
    cin>>k;
    for(i=1.0;s<=k;i++)
    {
        s=s+1.0/i;
        n=i;
    }

    cout<<n<<endl;
   return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
叶落_青空
2018-09-27
知道答主
回答量:1
采纳率:0%
帮助的人:808
展开全部
#include<stdio.h>

int main()
{
int n=0;
double Sn=0,k;
printf("输入k值:");
scanf("%lf", &k);
if (k <= 15 && k >= 1);
{
for (n; Sn <= k; ++n, Sn += 1.0/ n);
printf("%d", n);
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱子学习
2019-12-11
知道答主
回答量:3
采纳率:0%
帮助的人:2997
展开全部
#include<iostream>
using namespace std;
int main()
{
int i=1,j,flag=-1;
double pi=0,x=0;
do
{
flag=flag*(-1);
x=(double)(1)/(2*i-1);
pi=pi+x*flag;
i++;
}
while(x>=0.000001);
cout<<endl<<pi*4;
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
剑乃心02q
2018-04-06
知道答主
回答量:7
采纳率:0%
帮助的人:6415
引用flczzhang的回答:
#include <stdio.h>int main(){ double s = 0; int i; int k; scanf("%d",&k); for(i = 1; ; i ++) { s+=1.0/i; if(s>=k)break; } printf("%d\n", i); return 0;}
展开全部
错了,应该是:
#include <stdio.h>
int main()
{
double s = 0;
int i;
int k;
scanf("%d",&k);
for(i=1;;i++)
{
s+=1.0/i;
if(s>k)break;
}

printf("%d\n", i);

return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式