(1)求n分之一序列前n项和:输入一个正整数n,计算序列1+1/2+1/3+···的前n项和。
输入输出示例
Enter n:6
sum = 2.450000
#include <stdio.h>
int main(void){
int i,n;
double sum;
printf("Enter n:");
scanf("%d",&n);
sum=0;
for(i=1;i<=n;i++){
sum+=1.0/i;
}
printf("sum=%lf",sum);
return 0;
}
(2)求奇数分之一序列前n项和:输入一个正整数n,计算序列1+1/3+1/5+···的前n项和。
输入输出示例
Enter n:23
sum = 2.549541
#include <stdio.h>
int main(void){
int i,n;
double sum;
printf("Enter n:");
scanf("%d",&n);
sum=0;
for(i=1;i<=2*n;i=i+2){
sum+=1.0/i;
}
printf("sum=%lf",sum);
return 0;
}
(3)求简单交错序列前n项和:输入一个正整数n,计算序列1-1/4+1/7-1/10···的前n项和。
输入输出示例
Enter n:10
sum = 0.819
#include <stdio.h>
#include <math.h>
int main(void){
int i,n,count=0;
double sum,add;
printf("Enter n:");
scanf("%d",&n);
sum=0;
for(i=1;i<=3*n;i=i+3){
add=1.0/i;
sum=sum+add*pow(-1,count);
count++;
}
printf("sum=%0.3lf",sum);
return 0;
}
易错点:
for(i=1;i<=n;i=i+2)
题目为前n项和,在书写代码时,容易把范围限定为n,但(2)(3)两题 i 的step不为1,举例:如果for(i=1;i<=n;i=i+2) 第二题计算的是前12项。