84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
怎么求呢??想不出
闭关修行中......
可以这样计算:
>>> num = 0 >>> for i in range(100): ... if i % 2 == 0: ... num = num - i ... else: ... num = num + i ... >>> num 50
另外,由于是前1个数字减去后1个数字,因此2个数值之间的和为-1,而99/2=49.5,因此,共有49对,其结果为-49,再与99相加可以得到99-49=50
粗略的看了一下,前面几个答案都使用了for循环,个人觉得能少用就少用吧,尽量把时间变成O1。假设参数为n,就是最大的那个数,并且都大于0,这里为99
for
当n为奇数时,结果为正,result = ((n - 1) / 2) * (-1) + n当n为偶数时,结果为负,也就是result = (n / 2) * (-1)所以,答案就出来了。。
def compute(n): if n % 2 is 1: return int(((n - 1) / 2) * (-1) + n) else: return int((n / 2) * (-1))
雷雷
# 定义输出字符串 aaa = '' # 定义计算结果 bbb = 0 for i in range(1,100): aaa += str(i) if i % 2 == 0: aaa += '+' bbb -= i else: aaa += '-' bbb += i print('字符串输出: \r\n %s \r\n计算结果: \r\n %s' % (aaa.rstrip('-'), bbb))
字符串输出: 1-2+3-4+5-6+7-8+9-10+11-12+13-14+15-16+17-18+19-20+21-22+23-24+25-26+27-28+29-30+31-32+33-34+35-36+37-38+39-40+41-42+43-44+45-46+47-48+49-50+51-52+53-54+55-56+57-58+59-60+61-62+63-64+65-66+67-68+69-70+71-72+73-74+75-76+77-78+79-80+81-82+83-84+85-86+87-88+89-90+91-92+93-94+95-96+97-98+99- 计算结果: 50
可以这样计算:
另外,由于是前1个数字减去后1个数字,因此2个数值之间的和为-1,而99/2=49.5,因此,共有49对,其结果为-49,再与99相加可以得到99-49=50
粗略的看了一下,前面几个答案都使用了
for
循环,个人觉得能少用就少用吧,尽量把时间变成O1。假设参数为n,就是最大的那个数,并且都大于0,这里为99
当n为奇数时,结果为正,result = ((n - 1) / 2) * (-1) + n
当n为偶数时,结果为负,也就是result = (n / 2) * (-1)
所以,答案就出来了。。
雷雷
雷雷
雷雷
代码
结果
雷雷