计算1-3+5-7+...-99+101+...±n的值
使用一个变量(如本例中的 sign
)来跟踪当前项的正负,并在每次迭代时更新这个变量的值(如通过乘以-1来切换正负)。然后,将这个变量与当前项相乘,并将结果累加到总和中。
使用C语言实现,具体代码:
#include<stdio.h>
int main(){
int sum = 0, n, sign = 1; // sign 用来跟踪正负号
printf("计算1-3+5-7+...-99+101+...±n的值\n");
printf("输入n: ");
scanf("%d", &n);
// 确保n是奇数,因为序列是从1开始的奇数序列
if (n % 2 == 0) {
n--; // 如果n是偶数,则减少n以符合序列的奇数性质
}
for(int i = 1; i <= n; i += 2) { // 每次增加2,以保持序列的奇数性
int temp = 2 * i - 1; // 生成奇数项
sum += sign * temp; // 根据sign的正负来加减temp
sign *= -1; // 切换sign的正负
}
printf("sum= %d\n", sum);
return 0;
}
测试结果:
通过测试多组数据,不难发现:
S=2−n
(当 n>2 且为奇数时,当 n=1 时,序列就是1本身)
觉得有帮助的话点个赞吧!