c++编程题1

使用循环计算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;    
}

代码是否更简洁?


发布了22 篇原创文章 · 获赞 8 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/csucoder_zone/article/details/52492613
今日推荐