#include <stdio.h>
int main( void)
{
int i,n,z,d;
double it,s;
printf("enter x:\n");
scanf("%d",&n);
s=0;
z=2;
d=1;
for(i=1;i<=n;i++){
it = z / d;
s = s + it;
d = z;
z = z + d;
}
printf("s=%.2f\n",s);
return 0;
}
输入2,输出4.00
输入3,输出6.00
有两个问题:
it = z/d 结果是整数, 需要写成 z * 1.0 / d
d 和 z 的更新有问题, 按上面的写法, z 每次都会变为原来的两倍
我觉得可以写成这样:
#include <stdio.h>C++程序设计:一个分数数列2\/1+3\/2+5\/3+8\/5…求前n项和,n自己输入,要求...
int型的话,“a\/b”的结果是整数,sum的累加值就错了。PS:temp同样要改
C++源程序:输入一个正整数n ,输出2\/1+3\/2+5\/3+8\/5+……的前n项100项之...
3、用do-while语句执行循环,条件是计算后的num值不为0。4、计数变量累加1,实现计算次数的统计。5、对整数num用2取余,保存在变量r中。6、用num除2的方式,计算正整数的商。7、输出正整数转换为二进制数的过程。8、最后,输出十进制数num转换为二进制数所需的次数。9、运行程序,输入一个正整数...
C++:有一个分数序列2\/1,3\/2,5\/3,8\/5……求前n项之和
double result = 0;for (int i = 1;i<=n;i++){ result += ((double)i+1) \/(double)i;} return result;} void main(){ char frag = 'Y';int n;do { cout<<"请输入n:"<<endl;cin>>n;cout<<"结果为:"<<Result(n)<<endl;cout<<"是否继续(Y\/N)?"<<endl;cin>>frag;...
用C++编写求出数列2\/1,3\/2,5\/3,8\/5,13\/8,……的前20项之和
楼上明显不对 !include<iostream> using namespace std;void main(){ double s=0;int a[20]={2,3},b[20]={1,2};for(int i=2;i<20;i++){ a[i]=a[i-1]+a[i];b[i]=b[i-1]+b[i];s+=a[0]*1.0\/b[0]+a[1]*1.0\/b[1]+a[i]*1.0\/b[i];} cout<<s<<...
...8\/5,13\/8,21\/13,... 求这个分数序列的前n项之和。
应为 当n=99时 o 和 m都已经超过了double的表示范围了,所以如果要运算到99 可能你要另想办法了(考虑一下怎么表示这么大的数字3314859971或者想办法找到这个问题的通项式)。具体参考斐波纳契数列。ps :越往后面s越接近黄金比例 int n,p;double m,o,s,sum ;cin>>n;m=1,o=1,s=0,sum=0...
...8\/5,13\/8,21\/13,... 求这个分数序列的前n项之和.
cin>>n; double a=1,b=2; double result = 0.0; for(i=0;i<n;++i) { double tmp = b\/a; result +=tmp; b = a+b; a = b-a; } cout<<fixed<<setprecision(4)<<result<<endl; return 0;} ...
...8\/5,13\/8,21\/13,... 求这个分数序列的前n项之和.
cin>>n; double a=1,b=2; double result = 0.0; for(i=0;i<n;++i) { double tmp = b\/a; result +=tmp; b = a+b; a = b-a; } cout<<fixed<<setprecision(4)<<result<<endl; return 0;} ...
用C++程序求下列分数序列前15项的和。2\/1 ,3\/2 ,5\/3 ,8\/5 , 13\/8...
cout<<"最终结果为:"<<InitSerios(2,1,3,2,15)<<endl;} double Franction(int i,int j){ return (double)i\/(double)j;} double InitSerios(int x,int y,int x1,int y1,int num){ int a[num],b[num];double adding=0;a[0]=x;b[0]=y;a[1]=x1;b[1]=y1;adding=adding+...
Dev C++报错 [Error] ld returned 1 exit status
正确的代码方式如下:include<stdio.h> double add(int m);\/\/求和函数 double f(int n);\/\/函数fac,求分母,并且间接求得分子 int main(){printf("数列2\/1+3\/2+5\/3+8\/5+...前20项之和为:%f",add(20)) ;return 0;} double add(int m){ double sum=0;int i;for(i=1; i<=...
devc++中 [Error] ld returned 1 exit status
报错的原因是:函数申明放在main函数的外面,而且申明的是fac函数,但使用的时候却写成了f,所以造成结果的不正确。正确的代码方式如下:include<stdio.h> double add(int m);\/\/求和函数 double f(int n);\/\/函数fac,求分母,并且间接求得分子 int main(){printf("数列2\/1+3\/2+5\/3+8\/5+.....