hyqd.net
当前位置:首页 >> C++题Sn=已知:Sn= 1+1/2+1/3+…+1/n。显然对于任意一个整数 K,当 n 足 够... >>

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

在我看来,这道题的核心在于循环的使用,因为Sn是1/1到1/n的合计,这个位置只要写对了,其他的就是输入输出而已了.伪代码如下://输入K,需要加判断,因为题目里写明了1到15 int n=1; double dResult=0;//当前值,判断和输出用;for(;dResult<k;n+=1)//这里的n+=1用n++代替亦可 dResult+=(double)1/n;//输出n如果Sn必须作为一个单独的方法去调用的话,直接把前后的输入输出以外的代码放到新方法里面,输入参数K,输出结果n,然后调用方法赋值给外面要输出的n(或者直接在输出语句里面调用,直接把返回结果输出,不过调试的时候有可能有点棘手).还有问题可回复,谢谢.

#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; }

var n,k,a:real; begin readln(k); repeat a:=a+1; n:=n+1/a; until n>k; write(a:0:0) end.

题目不完整.意思应该是说数列有上限.但这是调和级数,是没有上限的

调和级数S=1+1/2+1/3+……是发散的,证明如下:由于ln(1+1/n)ln(1+1)+ln(1+1/2)+ln(1+1/3)+…+ln(1+1/n)=ln2+ln(3/2)+ln(4/3)+…+ln[(n+1)/n]=ln[2*3/2*4/3*…*(n+1)/n]=ln(n+1)由于lim Sn(n→∞)≥lim ln(n+1)(n

#include 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;}

program ex;varsn:real;k,n:longint;beginreadln(k);n:=1;sn:=0;repeatsn:=sn+1/n;n:=n+1;until sn>k;write(n-1);end.不要老靠别人,Pascal只有靠自己才能学好

由题,只要证明1/2+..+1/2^n >n/2(n>=2) 用数学归纳法 当n=2时,左边=1/2+1/3+1/4=13/12 .右边=2/2=1,左边>右边,成立假设当n=m是时成立,即1/2+..+1/2^m >m/2则当n=m+1时有1/2+..+1/2^m +1/(2^m+1)++1/(2^(m+1))>m/2+1/(2^m+1)++1/(2^(m+1))>m/2+1/(2^(m+1))*(2^(m+1)-2^m)= m/2+1/(2^(m+1))*2^m=m/2+1/2=(m+1)/2=右边有上述推导可得结论成立做的很仔细,希望给分.

div是整除..改/..

Sn=1/1*2+1/2*3,,1/n*(n+1)=(1-1/2)+(1/2-1/3)++[1/n-1/(n+1)]=1-1/(n+1)=n/(n+1)用数学归纳法证:当k=1时:S1=1/1*2=1/2 k/(k+1)=1/2 所以Sk=k/(k+1)假设当k=n时成立,即:Sn=n/(n+1)那么当k=n+1时,证明S(n+1)=(n+1)/(n+2)即可S(n+1)=1

相关文档
网站首页 | 网站地图
All rights reserved Powered by www.hyqd.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com