怎么求呢??想不出
闭关修行中......
可以這樣計算:
>>> 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)
所以,答案就出來了。 。
雷雷
雷雷
雷雷
代碼
結果
雷雷