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.

div是整除..改/..

#include<iostream> using namespace std; int main() { int k,i; float n=1; cin>>k; if(n<=k) { for(i=2;n<k;i++) n=n+1/i; cout<<i; } else cout<<1; return 0; }

你是不是要证:(1+1/2) ^ n > 1 + n/2?(1+1/2) ^ n用二项式展开,前两项就是1+ n/2,所以不等式成立

#include <stdio.h>#include <math.h>int main(void){ int n = 0; printf("please input a number\n"); scanf("%d",&n); n = abs(n); float Sn = 0.0; while(n > 0){ if(!(n%2)) { n = -n; } Sn += (float)1/n; n = abs(n); n--; } printf("Sn = %lg\n",Sn); return 0;}

#include "stdio.h"int main(void){ int n; double s; for(s=1.0,n=2;(s+=1.0/n)<8;n++); if(s-8 > 8-(s-1.0/n)) printf("s = %g\tn = %d\n",s-1.0/n,n-1); else printf("s = %g\tn = %d\n",s,n); return 0;}

数列 Sn=1+1/2+1/3+1/4+.+1/n求和,这个目前还没有数学公式可用 求不了,这个是发散的.没有极限,就是说可以加到正无穷,没办法表示 .

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