拼题A基础22
7-23 求简单交错序列前N项和 (20分)
#include<stdio.h>
main()
{
int N, flag = 1, k = 1;
double sum = 0.0;
scanf("%d", &N);
for(int i = 1; i <= N; i++)
{
sum = sum + flag*(1.0/k);
flag = -flag;
k += 3;
}
printf("sum = %.3lf", sum);
return 0;
}
心得
这道题其实自己走了很多的歪路,
一开始拿到这道题目的时候,想的比较简单,没有把分子分母分开来,后面自己还一直看不出有什么问题,所以这个时候试数就显得非常的重要,然后自己试了两组数就找出来问题了,其实之前的一惯思维都是一旦找到错误之后就非常的不知所措,不知道看到我写的这句话的大家有没有这种感觉。大脑其实非常优秀,他会有很多人自己都不知道的功能,他很容易就会新成惯性,但他自己根本搞不清楚这样的惯性对自己有没有好处。
在做题过程中,其实这种害怕自己找出自己错误的惯性实际上是非常错误的,所以其实要慢慢克服。
符号的变化其实自己一开始想的非常复杂,但其实后面用一个很简答的 flag = -flag;就可以完成符号的变化。
总结(关于这类符号交替变换的问题)
很简单
一个 flag = -flag;搞定
根据题目要求的变化改变flag的初始值。题目就结束了。