Rumah > Soal Jawab > teks badan
天蓬老师2017-04-18 10:19:08
Ia boleh dikira seperti ini:
>>> num = 0
>>> for i in range(100):
... if i % 2 == 0:
... num = num - i
... else:
... num = num + i
...
>>> num
50
Selain itu, kerana ia adalah nombor pertama tolak nombor terakhir, jumlah antara dua nilai adalah -1, dan 99/2=49.5 Oleh itu, terdapat 49 pasangan secara keseluruhan, dan hasilnya ialah -. 49. Menambahnya kepada 99 memberi kita 99-49=50
迷茫2017-04-18 10:19:08
Selepas melihat sepintas lalu, semua jawapan sebelum ini menggunakan for
secara peribadi, saya fikir anda harus menggunakannya kurang jika anda boleh, dan cuba mengurangkan masa kepada O1.
Andaikan parameter ialah n, iaitu nombor terbesar, dan kedua-duanya lebih besar daripada 0, ini ialah 99
n | result |
---|---|
1 | 1 |
2 | -1 |
3 | 1 |
4 | -2 |
5 | 3 |
6 | -3 |
Apabila n ialah nombor ganjil, hasilnya adalah positif, keputusan = ((n - 1) / 2) * (-1) + n
Apabila n ialah nombor genap, hasilnya adalah negatif, iaitu , keputusan = (n / 2) * (-1)
Jadi, jawapannya sudah keluar. .
def compute(n):
if n % 2 is 1:
return int(((n - 1) / 2) * (-1) + n)
else:
return int((n / 2) * (-1))
PHP中文网2017-04-18 10:19:08
>>> rslt=0
>>> for n in range(1,100):
rslt += n*(-1,1)[n&1]
>>> rslt
50
>>> sum(( n*(-1,1)[n&1] for n in range(1,100) ))
50
阿神2017-04-18 10:19:08
>>> sum((sum(range(1, 100)[::2]), -sum(range(1, 100)[1::2])))
>>> 50
>>> # functools和itertools是你最强大的利器。
迷茫2017-04-18 10:19:08
# 定义输出字符串
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
PHP中文网2017-04-18 10:19:08
def get_sum(lo, hi):
return sum(range(lo, hi+1, 2)) + sum(range(lo+1, hi, 2))