数列求和计算
- f ( n ) = 1 + 1 2 + 1 3 + 1 4 + … + 1 n f\left( n \right) = 1 + {1 \over 2} + {1 \over 3} + {1 \over 4} + \ldots + {1 \over {\rm{n}}} f(n)=1+21+31+41+…+n1
#include <stdio.h>
int main() {int i;int n;double sum = 0.0;printf("请输入n的值:");scanf("%d",&n);getchar();for (i = 1; i <= n; i++){sum += 1.0/i;}printf("f(%d)=%f",n,sum);getchar();return 0;
}
- f ( n ) = 1 − 1 2 + 1 3 − 1 4 + 1 5 − 1 6 + … − 1 n f\left( n \right) = 1 - {1 \over 2} + {1 \over 3} - {1 \over 4} + {1 \over 5} - {1 \over 6} + \ldots - {1 \over {\rm{n}}} f(n)=1−21+31−41+51−61+…−n1
#include <stdio.h>
int main() {int i;int n;int sign = 1;double sum = 0.0;printf("请输入n的值:");scanf("%d",&n);getchar();for (i = 1; i <= n; i++){sum += sign*1.0/i;sign = -sign;}printf("f(%d)=%f",n,sum);getchar();return 0;
}
定义一个整数变量来满足程序中的+和-的变换。
当然也可以直接定义一个double变量来实现
#include <stdio.h>
int main() {int i;int n;double sign = 1.0;double sum = 0.0;printf("请输入n的值:");scanf("%d",&n);getchar();for (i = 1; i <= n; i++){sum += sign/i;sign = -sign;}printf("f(%d)=%f",n,sum);getchar();return 0;
}