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

什么符号状态变量啊 不懂啊

sum+=i*flag;

flag*=-1

这两步不懂啊 什么意思呢 怎么算的 啊

正在回答

5 回答

当执行sum=sum+i*flag(1)后,

执行flag*=-1 (变成 flag= flsg(1)*(-1))=-1 

这个时候 flag已经是=-1了  

在执行 i++后,sum=sum+i*(flag=-1)负数

  再执行一次flag*=-1 (变成 flag= flsg(-1)*(-1))=1, 正数!

 就是一直这样一正一负循环,  ? 我是这样理解的,看了半个小时理解这个代码意思! 希望对你有所帮助

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

(百度搜到的解释,觉得不错就分享了。)

这是一个编程的小技巧
第一次执行循环的时候:
flag = 1 , sum = 0, i = 1
那么
sum = sum + i * flag = 0 + 1 * 1 = 1  i作为正数加入
接下来flag = flag * -1 = 1 * -1 = -1
所以第二次执行循环的时候
sum = sum + i * flag = 1 + 2 * -1 = 1 - 2 = -1 i作为负数加入
接下来flag = flag * -1 = -1 * -1 = 1
那么第三次执行循环的时候,i又可以作为正数加入,
以此类推就可以达到判断符号的效果。

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

Fighting_001

谢谢!
2016-04-26 回复 有任何疑惑可以回复我~

不明白


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

什么东东


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

sum+=i*flag等价于sum=sum+i*flag

flag*=-1等价于flag=flag*(-1)

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

举报

0/150
提交
取消

什么符号状态变量啊 不懂啊

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