计算1-3+5-7+…-99+101的值
#include
void main()
{int i,t=1,s=0;
for(i=1;i<=101;i+=2 )
{ s=s+t*i;
}
printf("%d\n",s);
}
//2.编写程序,求1-3+5-7+……-99+101的值。
//方法1
#include <stdio.h>
int main()
{
int i;
int sum = 0;
int a;
for(i = 1;i <= 102 / 2;i ++)
{
a = 2 * i - 1;
if(i % 2 == 0)
{
a = -a;
}
sum = sum + a;
}
printf("%d\n",sum);
}
//方法二
#include <stdio.h>
int main()
{
int i1;//整数一共有几个
int i2;//负数一共有几个
int sum1 = 0;//正数部分的和
int sum2 = 0;//负数部分的和
int sum3 = 0;//最后结果
i1 = (101 + 3) / 4;//正数的通项(i1 - 1) * 4 + 1 = 101
sum1 = (1 + 101) * i1 / 2;//求等差数列的前n项和
i2 = (99 + 1) / 4;//负数的通项(i2 - 1)* 4 + 3 = 99
sum2 = (3 + 99) * i2 / 2;
sum3 = sum1 - sum2;
printf("%d\n",sum3);
}
//方法三
#include <stdio.h>
int main()
{
int i;
int n;
int flot = 1;//符号
int a;
int sum = 0;//值
n = (101 + 1) / 2;
for(i = 1;i <= n;i ++)
{
a = 2 * i - 1;
sum = sum + flot * a;
flot = -flot;
}
printf("%d\n",sum);
}
在s=s十t*i后加上t=-t
思路:两个+法之间的数字相差4,把所有+的数字加起来,把所有-的数字加起来,两个数相减就是答案了。
#include <stdio.h>
void main()
{int i,t=1,s=0;
for(i=1;i<=101;i+=2 )
{ s=s+t*i;
t=t*(-1)
}
printf("%d\n",s);
}
void main()
{
int i, t = 1, s = 0;
for (i = 1; i <= 101; i += 2)
{
s = s + t * i;
t = -t;
}
printf("%d\n", s);
}
在for循环中加上t = -t,第一次t为1第二次就是-1,第三次就是1。这样就能实现了