计算1-2+3-4+...+99-100的和
方法一:通过奇偶数的判断
通过观察式子可以看出,奇数进行的是相加的计算,而偶数进行的是相减的计算,因此我们可以使用for循环依次遍历1~100,在循环体中通过if else语句来判断该数的奇偶性,从而进行相加与相减的计算。
#include <stdio.h>
int main()
{
int sum = 0;
for (int i = 1; i <= 100; i++)
{
if (i % 2 == 0)
{
sum -= i;
}
else
{
sum += i;
}
}
printf("%d", sum);
return 0;
}
方法二:通过控制符号正负
通过式子可以看出符号的依次变化,因此我们可以利用变量K在每次计算结束之后,使K下一次都变为自身相反数,即在1和-1直接循环变化,这样就不需要判断奇偶性。
#include <stdio.h>
int main()
{
int sum = 0;
int k = 1;
for (int i = 1; i <= 100; i++)
{
sum += i * k;
k = -k;
}
printf("%d", sum);
return 0;
}
计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100的和
方法一:通过奇偶数的判断
方法同上,该两式相比区别在于,该分式的分子是固定的1,而分母是从1~100变化的,并且符号变化是与上式相同的,因此,只需要在以上代码稍作修改,将sum设为float浮点型,并且注意是1.0/i,从而进行相加与相减的计算。
#include <stdio.h>
int main()
{
float sum = 0;
for (int i = 1; i <= 100; i++)
{
if (i % 2 == 0)
{
sum -= 1.0 / i;
}
else
{
sum += 1.0 / i;
}
}
printf("%f", sum);
return 0;
}
方法二:通过控制符号正负
该分式与上式一样,分母为奇数时进行相加运算,分母为偶数时进行相减运算,因此我们同样可以用符号变量K来解决正负的问题,并也将K初始化为1,计算结果是一样的。
#include <stdio.h>
int main()
{
float sum = 0;
int k = 1;
for (int i = 1; i <= 100; i++)
{
sum += k * (1.0 / i);
k = -k;
}
printf("%f", sum);
return 0;
}