为了账号安全,请及时绑定邮箱和手机立即绑定

这个公式是怎么得出的

 sum=sum+i*flag;

        i++;

        flag=-flag;

       


正在回答

3 回答

sum=sum+i*flag; 

//此句相当于sum += i*flag;相当于是用sum的当前值加上 i*flag 的值,然后覆盖掉当前值作为新值;还有 -=(减等) *=(乘等) /=(除等)

        i++;

        flag=-flag;

//此句与上面相似,相当于flag *= -1 ,即flag *= -flag或者flag =(-1 * flag),用途是控制数值的正负,flag的初始化赋值是1,那么1*(-1)之后flag的值就是-1,第二次用-1 * flag(即-1 * -1)之后flag的值就是1,第三次是-1,第四次是1,以此类推,奇数次flag的值为1,偶数次flag的值为-1


1 回复 有任何疑惑可以回复我~
#1

luanhuansen 提问者

flag=-flag,你说它的用途是控制数值的正负,也就是说这是一个固定的公式吗?还是怎么回事?
2016-02-28 回复 有任何疑惑可以回复我~
#2

luanhuansen 提问者

http://www.imooc.com/code/5276,这是这个题所在的链接,我再请问一下,sum=sum+i*flag;这个公式是怎么得出的,我想了好就都没有想出来,
2016-02-28 回复 有任何疑惑可以回复我~
#3

luanhuansen 提问者

非常感谢!
2016-02-28 回复 有任何疑惑可以回复我~
#4

天地不仁_以_万物为刍狗 回复 luanhuansen 提问者

其实sum=sum+i*flag这也不是什么公式,就是为了题目的需要写出来的代码,所以也就谈不上是怎么得出来的喽,理解了意思就行。要说公式的话你把flag=-flag好好理解理解,基本上一个需要改变数值正负号的问题,都需要它来解决
2016-02-29 回复 有任何疑惑可以回复我~
查看1条回复

基本就是把sum+i*flag的值赋给sum,然后i加上1,再把flag乘上-1

0 回复 有任何疑惑可以回复我~

敲敲代码,vc6单步执行看看就明白了

我是这么做的

#include <stdio.h>
int main()
{
    /* 小伙伴们:
           选择你们认为最合理的循环结构完成功能吧 */
    int sum = 0;  //定义计算结果变量sum
    int i = 1;    //定义循环数字变量i
 //定义符号状态变量flag
    
    //使用while循环
    while(i<=100)
    {
      
       i%2==0?(sum=sum-i):(sum=sum+i);
       
       i++;
    }
    printf("sum=%d",sum);
}

1 回复 有任何疑惑可以回复我~
#1

qq_小风_4

这个方法也不错哦,我认为很好的。
2016-03-15 回复 有任何疑惑可以回复我~
#2

慕田峪2209356

6666
2016-04-19 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926209    人
  • 解答问题       20797    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

这个公式是怎么得出的

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信