c++编程..级数求和:求最小的n值。
求恰好使s=1+1/2+1/3+…+1/n的值大于X时n的值。(2 <= x<= 15)
用c++编程哦。
谢谢!
最佳答案
#include<stdio.h>
void main()
{ int n=1;
float s=0.0, x;
scanf("%f",&x);
while(s<=x)
{ s=s+1.0/n;
n++;
}
printf("%n\n",n);
}
追问:
我试了一下,不行-- 追答:
错了一个字母:最后一句改为:printf("%d\n",n);
追问:
还是不行耶o.o
追问:
这道题我纠结了好久了 追答:
刚运行过可以,你看贴图:
追问:
2的答案是4耶 追答:
最后一句改为:printf("%n\n",n-1);
追问:
谢谢!不过最后一句应该是(“%d\n”,n)
其他回答
其它网友回答:
s=1+1/2+1/3+……+1/n没有通用的求和公式,利用“欧拉公式”(可以查阅相关书籍):s=1+1/2+1/3+……+1/n=ln(n)+C,C为欧拉常数 数值是C=0.577215664901532860651209.剩下的你自己算下吧我算的结果好像是12367 ln(n)>10-Cn>e^(10-C)=12366.968109955823n为整数故n取12367
追问:
可是我这个是c++编程o.o||
其它网友回答:
#include<bits/stdc++.h>
其它网友回答:
using namespace std;
其它网友回答:
int main()
其它网友回答:
{
其它网友回答:
double s=0.0;
其它网友回答:
int x;
其它网友回答:
cin>>x;
其它网友回答:
int i=1;
其它网友回答:
while(s<=x)
其它网友回答:
{
其它网友回答:
s+=(1.0/i);
其它网友回答:
i++;
其它网友回答:
}
其它网友回答:
cout<<i;
其它网友回答:
return 0;
其它网友回答:
}
其它网友回答:
追问:
这个不对...