c语言交错数列求和
@国物4256:c语言数列求和 2/1+3/2+5/3+8/5………求前n项之和 -
艾肩18081274095…… #includefloat sum (n) { float sum = 0; int i = 1; for(; i <= n; i++) { sum += ((float)i)/(i+1); } return sum; } main() { printf("%.2f\n", sum(20)); }
@国物4256:c语言数列求和:求1 - 2/3+3/5 - 4/7+5/9 - 6/11+...的前n项和,结果保留3位小数 -
艾肩18081274095…… i/deno只有当i = 1 deno = 1,i/deno = 1, 其他情况得0,因为"/"对于int型数据来说,除后取整操作,即10/9=1.111111......,那么实际结果为1,小数点后的全部丢弃(不是四舍五入,而是全舍) 要想得到你要的结果应该这样 1.0 * i / deno //1.0是double型的,与i相乘还得double型的,这样就能出正确结果 或 ((double) i ) / deno
@国物4256:c语言编程:求数列的累加和 -
艾肩18081274095…… #include#define N 100 int main() { int n; float sum=0,i; printf("输入n的值:"); scanf("%d",&n); for(i=1;i<=n;i++) sum=i/(n-i+1); printf("%f",sum); return 0; }
@国物4256:C语言运用等差数列求和公式n*(n+1)/2 -
艾肩18081274095…… 你写的这个公式只能求首项为1,公差为1的等差数列的前n项和.对于一般等差数列,这个公式是求不了的. 代码如下: #include <stdio.h> void main() { int n; printf("请输入等差数列的项数n: "); scanf("%d",&n); printf("%d",n*(n+1)/2); }
@国物4256:C语言编程求和 -
艾肩18081274095…… 让你参考下,会有帮助嘀 //求2/1+3/2+5/3+8/5+13/8......这个数列的前20项和 #include using namespace std; int main() { float a=1,b=2,c,sum=0; for(c=1;c<=20;c++) {sum=sum+b/a; b=a+b; a=b-a; } cout<<"2/1+3/2+5/3+8/5+13/8...前20项和为:"< 评论 0 0 加载更多
@国物4256:C语言数列求和 -
艾肩18081274095…… int main() { double x,sum,jd,xf=1,i=1,jc=-1,m; scanf("%lf",&x); sum=0; do { jc=-jc*i; xf*=x; m=xf/jc; jd=fabs(m); sum=sum+m; i++; } while(jd>0.00001); printf("sum=%.2f",sum); return 0; }有两点错误: 1、do-while之间没有{},加上即可; 2、jc没有赋初始值,在for循环前(do-while内)应加上jc=1; 另:上面代码为我作的小小修改(稍微提高一点效率)
@国物4256:C语言数列求和 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13,…… 计算这个 -
艾肩18081274095…… #include<stdio.h> int main(){ int a, b, c, i; float sum; float a = 1; float b = 2; //这是前20项的和 for(i = 1; i <= 20; i++){ sum = sum + 1.0*b/a; c = a; a = b; b = c + b; } printf("%.2f", sum); return 0; }
@国物4256:C语言编程:序列求和. -
艾肩18081274095…… #include <stdio.h> #include <stdlib.h> int main(void){ int m; scanf("%d", &m); while(m--){ int n, i; double res = 0; double temp1 = 1.0, temp2 = 2.0; scanf("%d", &n); for(i = 0; i < n; ++i){ res = res + temp2/temp1; temp2 += temp1; temp1 = temp2 - temp1; } printf("%.3lf\n", res); } }
@国物4256:c语言数列求和
艾肩18081274095…… 其实这个题目根本不用求出S,也不用担心它会超出int范围. 因为是数列,所以就要从数列规律上去找结果. 比如a=1,n=5,s=3.列竖式 1 11 111 1111 11111 ------ 12345 后3位是345. 个位是5,它是怎么计算出来的?a*n 十位是4,怎么算出来的?a*(n-1)+个的进位(如果有) 百位是3,怎么算出来的?a*(n-2)+低位的进位(如果有) 照这个规律,根本不用计算S. 定义一个数组int sm[10].sm[0]保存个位,sm[1]保存十位数字就行了,... 我没有写出完整的程序,只是给你一个思路.自己理解一下,很好写出代码.遇到问题请教是好事.
@国物4256:c语言数列求和程序 通项为a=1/2(1/2n - 1 - 1/2n+1) -
艾肩18081274095…… #include void main() { int i,n; double s=0; scanf("%d",&n); for(i=1;i<=n;i++) s+=(1.0/(2*i-1)-1.0/(2*i+1))/2; printf("%lf",s); }
艾肩18081274095…… #includefloat sum (n) { float sum = 0; int i = 1; for(; i <= n; i++) { sum += ((float)i)/(i+1); } return sum; } main() { printf("%.2f\n", sum(20)); }
@国物4256:c语言数列求和:求1 - 2/3+3/5 - 4/7+5/9 - 6/11+...的前n项和,结果保留3位小数 -
艾肩18081274095…… i/deno只有当i = 1 deno = 1,i/deno = 1, 其他情况得0,因为"/"对于int型数据来说,除后取整操作,即10/9=1.111111......,那么实际结果为1,小数点后的全部丢弃(不是四舍五入,而是全舍) 要想得到你要的结果应该这样 1.0 * i / deno //1.0是double型的,与i相乘还得double型的,这样就能出正确结果 或 ((double) i ) / deno
@国物4256:c语言编程:求数列的累加和 -
艾肩18081274095…… #include#define N 100 int main() { int n; float sum=0,i; printf("输入n的值:"); scanf("%d",&n); for(i=1;i<=n;i++) sum=i/(n-i+1); printf("%f",sum); return 0; }
@国物4256:C语言运用等差数列求和公式n*(n+1)/2 -
艾肩18081274095…… 你写的这个公式只能求首项为1,公差为1的等差数列的前n项和.对于一般等差数列,这个公式是求不了的. 代码如下: #include <stdio.h> void main() { int n; printf("请输入等差数列的项数n: "); scanf("%d",&n); printf("%d",n*(n+1)/2); }
@国物4256:C语言编程求和 -
艾肩18081274095…… 让你参考下,会有帮助嘀 //求2/1+3/2+5/3+8/5+13/8......这个数列的前20项和 #include using namespace std; int main() { float a=1,b=2,c,sum=0; for(c=1;c<=20;c++) {sum=sum+b/a; b=a+b; a=b-a; } cout<<"2/1+3/2+5/3+8/5+13/8...前20项和为:"< 评论 0 0 加载更多
@国物4256:C语言数列求和 -
艾肩18081274095…… int main() { double x,sum,jd,xf=1,i=1,jc=-1,m; scanf("%lf",&x); sum=0; do { jc=-jc*i; xf*=x; m=xf/jc; jd=fabs(m); sum=sum+m; i++; } while(jd>0.00001); printf("sum=%.2f",sum); return 0; }有两点错误: 1、do-while之间没有{},加上即可; 2、jc没有赋初始值,在for循环前(do-while内)应加上jc=1; 另:上面代码为我作的小小修改(稍微提高一点效率)
@国物4256:C语言数列求和 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13,…… 计算这个 -
艾肩18081274095…… #include<stdio.h> int main(){ int a, b, c, i; float sum; float a = 1; float b = 2; //这是前20项的和 for(i = 1; i <= 20; i++){ sum = sum + 1.0*b/a; c = a; a = b; b = c + b; } printf("%.2f", sum); return 0; }
@国物4256:C语言编程:序列求和. -
艾肩18081274095…… #include <stdio.h> #include <stdlib.h> int main(void){ int m; scanf("%d", &m); while(m--){ int n, i; double res = 0; double temp1 = 1.0, temp2 = 2.0; scanf("%d", &n); for(i = 0; i < n; ++i){ res = res + temp2/temp1; temp2 += temp1; temp1 = temp2 - temp1; } printf("%.3lf\n", res); } }
@国物4256:c语言数列求和
艾肩18081274095…… 其实这个题目根本不用求出S,也不用担心它会超出int范围. 因为是数列,所以就要从数列规律上去找结果. 比如a=1,n=5,s=3.列竖式 1 11 111 1111 11111 ------ 12345 后3位是345. 个位是5,它是怎么计算出来的?a*n 十位是4,怎么算出来的?a*(n-1)+个的进位(如果有) 百位是3,怎么算出来的?a*(n-2)+低位的进位(如果有) 照这个规律,根本不用计算S. 定义一个数组int sm[10].sm[0]保存个位,sm[1]保存十位数字就行了,... 我没有写出完整的程序,只是给你一个思路.自己理解一下,很好写出代码.遇到问题请教是好事.
@国物4256:c语言数列求和程序 通项为a=1/2(1/2n - 1 - 1/2n+1) -
艾肩18081274095…… #include void main() { int i,n; double s=0; scanf("%d",&n); for(i=1;i<=n;i++) s+=(1.0/(2*i-1)-1.0/(2*i+1))/2; printf("%lf",s); }