版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/melody_1016/article/details/82415230
习题2-4 求交错序列前N项和(15 分)
本题要求编写程序,计算交错序列 1-2/3+3/5-4/7+5/9-6/11+... 的前N项之和。
输入格式:
输入在一行中给出一个正整数N。
输出格式:
在一行中输出部分和的值,结果保留三位小数。
输入样例:
5
输出样例:
0.917
分析:本题与练习2-15求简单交错序列前N项和的思路一致,具体可参见那篇博客https://blog.csdn.net/melody_1016/article/details/82320590
代码:
(1)
//方法一:设置flag为int类型,表示整体正负的符号位
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
int n = 0;
int i = 0;
double sum = 0;
int flag = 1;
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
sum = sum + 1.0*flag*i / (2 * i - 1);
flag = -flag;
}
printf("%.3f\n", sum);
system("pause");
return 0;
}
(2)
//方法二:令分子成为浮点数
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
int n = 0;
int i = 0;
double sign = 1.0;
double sum = 0;
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
sum = sum + sign*i / (2 * i - 1);
sign = -sign;
}
printf("%.3f\n", sum);
system("pause");
return 0;
}
测试结果: