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

怎么求呢??想不出

阿神
阿神

闭关修行中......

répondre à tous(6)
Peter_Zhu

Il peut être calculé comme ceci :

>>> num = 0
>>> for i in range(100):
...     if i % 2 == 0:
...         num = num - i
...     else:
...         num = num + i
...
>>> num
50

De plus, puisqu'il s'agit du premier nombre moins le dernier nombre, la somme entre les deux valeurs est -1, et 99/2=49,5 Il y a donc 49 paires au total, et le résultat est -. 49. L'ajouter à 99 nous donne 99-49=50

迷茫

Après un rapide coup d'œil, les réponses précédentes utilisaient toutes des for boucles. Personnellement, je pense que vous devriez les utiliser moins si vous le pouvez, et essayer de réduire le temps jusqu'à O1.
Supposons que le paramètre soit n, qui est le plus grand nombre, et que les deux soient supérieurs à 0, ici il est 99

n result
1 1
2 -1
3 1
4 -2
5 3
6 -3

Quand n est un nombre impair, le résultat est positif, résultat = ((n - 1) / 2) * (-1) + n
Quand n est un nombre pair, le résultat est négatif, c'est-à-dire , résultat = (n/2) * (-1)
Donc, la réponse est sortie. .

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是你最强大的利器。
迷茫

Code

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

Résultats

字符串输出: 

 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))
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal