使用循环计算1-2+3-4+5-...-100。
第一种算法:
#include <stdio.h>
int main()
{
int sum = 0; //定义计算结果变量sum
int i = 1; //定义循环数字变量i
//使用for循环
for(i=1;i<=100;i++)
{
if(i%2==0){
i = -i;
sum = sum + i;
i = -i;
}else{
sum = sum + i;
}
}
printf("sum=%d\n",sum);
return 0;
}
这种方法用到了条件判断语句,是否可以继续优化?
仔细观察 题目发现,可把题目视作符号交替(?)的加数相加,可使用一个变量保存符号,代码如下:
#include <stdio.h>
int main()
{
int sum = 0; //定义计算结果变量sum
int i = 1; //定义循环数字变量i
int flag = 1; //定义符号状态变量flag
//使用for循环
for(i=1;i<=100;i++)
{
sum = sum + i*flag;
flag = -flag;
}
printf("sum=%d\n",sum);
return 0;
}
代码是否更简洁?