Maison  >  Questions et réponses  >  le corps du texte

python循环题目求1-2+3-4+5 ... 99的所有数的和

怎么求呢??想不出

阿神阿神2740 Il y a quelques jours4708

répondre à tous(6)je répondrai

  • 天蓬老师

    天蓬老师2017-04-18 10:19:08

    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

    répondre
    0
  • 迷茫

    迷茫2017-04-18 10:19:08

    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))

    répondre
    0
  • PHP中文网

    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

    répondre
    0
  • 阿神

    阿神2017-04-18 10:19:08

    >>> sum((sum(range(1, 100)[::2]), -sum(range(1, 100)[1::2])))
    >>> 50
    >>> # functools和itertools是你最强大的利器。

    répondre
    0
  • 迷茫

    迷茫2017-04-18 10:19:08

    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

    répondre
    0
  • PHP中文网

    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))

    répondre
    0
  • Annulerrépondre