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)
所以,答案就出來了。 。
雷雷
雷雷
雷雷
代碼
結果
雷雷