c++程序设计设s=1+1/2+1/3+....+1/n,求与八最接近的s的值与其对应的n值。最好用到do。。。while语
#include
int main()
{ int i=0;
double s=0;
while(s<8)
s+=1.0/++i;
if(s-8<8-(s-1.0/(i-1)))
printf("s=%fi=%d
",s,i);
else printf("s=%fi=%d
",s-1.0/(i-1),i-1);
return 0;
}
#include
#include
using std::cout ;
using std::endl ;
int main()
{
int n=1 ;
double s=0,s2 ; //s是当前表达式的和,s2是上一次计算时的和。
do{
s2=s ;
s+=(double)(1.0/n) ;
n++ ;
}while(s<8) ; //退出循环的时候,s大于8,s2小于等于8
if(8-s2>s-8) //算绝对值。。。小的输出
cout<<"s="<<s<<" n="<<n-1<<endl ;
else cout<<"s="<<s2<<" n="<<n-2<<endl ; //输出
return 0 ; //return 0;
}
声明一个int型变量n作为分母兼作项数记数变量,声明一个double型变量s记录前n项之和;利用do~while语句,n从1开始到当前项的浮点和小于8时继续循环,否则退出。退出循环后,比较s-8和8-(s-1.0/n),取小者(相等时取前一项)的最后一项的n便是题解。代码如下:
#include "stdio.h"
int main(int argc,char *argv[]){
int n;
double s;
s=n=0;
do{
s+=1.0/++n;
}while(s<8);
if(s-8 > 8-s+1.0/n)
s-=1.0/n--;
printf("s = %fn = %d
",s,n);
return 0;
}
运行结果如下:
#include "stdio.h"
void main()
{
double s=1.0;
int n=1;
do
{
++n;
s+=1.0/n;
}while(s<8);
if((8-s)>(s+1.0/(n+1)-8)
printf("n=%d,s=%lf",n+1,s+1.0/(n+1));
else
printf("n=%d,s=%lf",n,s);
}
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void main()
{
double s=0;
double i=1;
double s1=0,s2=0;
char a[20]="";
do{
s+=1/i;
i++;
}while(s<8.0000000000000001);
s1=s-8;
s-=1/i;
s2=8-s;
if(s1>s2)
{
gcvt(s,18,a);
printf("%f\n",i-1);
}
else
{
s+=1/i;
gcvt(s,18,a);
printf("%f\n",i);
}
puts(a);
}
#include "stdio.h"
void main()
{
double s=1.0;
int n=1;
do
{
++n;
s+=1/n;
}while(s<=8);
printf("%d,%f",n,s);
}
用C语言写的看看
编写程序,计算s=1+1\/(1*2)+1\/(1*2*3)+1\/(1*2*3*4)+。。。+1\/(1*2*3...
\/\/求n! 函数 { int i,njie=1;for(i=1;i<=n;i++)njie=njie*i;return njie;} void ok(int n)\/\/求各项和函数 { int i;double sum=0;for(i=1;i<=n;i++)sum=sum+1.0\/njie(i);printf("结果为:%lf",sum);} 该程序直到n=33都正确,n=34就开始乱码了,可能是溢出了。
对任意正整数n,设计一个程序求s=1+1\/2+1\/3+……+1\/n的值。写出程序框图...
程序比较简单,具体如下: #include <stdio.h> int main(){ float s = 0.0; int n = 100; for(int count=1;count<=n;count++) { s = s + 1.0\/count; } printf("%02.f\\n", s); return 0;} ...
用C++编写程序,计算s=1-1\/2+1\/4-1\/6+……-1\/98+1\/100?
s -= 1.0 \/ i;} } cout << "s = " << s << endl;return 0;} 程序中采用for循环遍历1到100的数,通过if条件语句来判断每一项是正数还是负数,并将其累加到变量s中。最后输出s的值即可。其中,"%"表示取模运算,即求余数,"=="表示相等判断。此外,"cout"是C++中的输出语句,用于...
c语言编程:s=1+1\/2+3\/1+4\/3+7\/4+11\/7+…..
算法大致如下:s=1;a=1;b=2;循环求 s=s+a\/b a、b变换:a为前项a、b之和,b为前项a 直到满足要求。程序就自己写吧
对任意正整数n,设计一个算法,求s=1+1\/2+1\/3+…+1\/n的值
首先要用户输入一个n的值n,程序里面用来限定循环次数,然后搞个循环就可以了。先设s==0 for{i=1;i<n+1;i++} {s=s+1\/i} cout<<s;ok了
编写程序求s=1+1\/2!+1\/3!+……+1\/n的值。
include <stdio.h> int main(void){ unsigned long n;unsigned long i;double s = 0.0;printf("Please input n:");scanf("%lu", &n);for(i = 1; i <= n; i++)s += 1.0 \/ i;printf("s=%lf\\n", s);return 0;} ...
编写程序计算s=1+1\/(2!)+1\/(3!)+...+1\/(n!) 。 n由终端输入,将计算n...
include<stdio.h> include<math.h> int fun(int a){int sum=1;<br\/> int i;<br\/>for(i=1;i<=a;i++)<br\/> {sum*=i;} return sum;} void main(){ float e=0,q;int m,n;scanf("%d",&n);for(m=1;m<=n;m++){ q=fun(m);e+=1\/q;} printf("%10.3f",e);} ...
求s=1+1\/2+1\/3+……+1\/n 直到1\/n<0.01为止的c语言编程啊,万分感谢...
include<stdio.h> int main(){ float sum=0;for(i=1;;i++){ sum=sum+1.0\/i;if(1.0\/i<0.01)break;} printf("sum=%d",sum);return 0;}
用C语言编程s=1+1\/2!+1\/3!+1\/4!+……+1\/n!其中n的值由键盘输入(急呀...
include <stdio> double a(int num){ double s=1;for(int i=1;i<=num;i++)s=s*i;return s;} void main(){ int n;scanf("%d",&n);double s=0;for(int i=1;i<=n;i++)s+=1.0\/a(i);printf("%f",s);}
c语言求S=1+1\/(1+2)+1\/(1+2+3)
scanf(":0+1;i++ ) \/分母每次累加当前项号;fm,sum);i<,注意当前项号是i+1,fm=0,(3)+3.;,加n项