python循环题目求1-2+3-4+5 ... 99的所有数的和
阿神
阿神 2017-04-18 10:17:08
0
6
4756

怎么求呢??想不出

阿神
阿神

闭关修行中......

membalas semua(6)
Peter_Zhu

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

迷茫

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))
Ty80
>>> 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
阿神
>>> sum((sum(range(1, 100)[::2]), -sum(range(1, 100)[1::2])))
>>> 50
>>> # functools和itertools是你最强大的利器。
迷茫

Kod

# 定义输出字符串
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))

Keputusan

字符串输出: 

 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
Ty80

def get_sum(lo, hi):
    return sum(range(lo, hi+1, 2)) + sum(range(lo+1, hi, 2))
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan