Programmers-2つの整数の間の和(Python)



質問する


2つの整数a,bが与えられると,aとbの間のすべての整数の和の関数を返し,解を完了する.
例えば、a=3、b=5の場合、3+4+5=12であるため、12が返される.

せいげんじょうけん

  • aおよびbの場合は、両方のいずれかに戻ってください.
  • aおよびbは、−1000000または1000000以下の整数である.
  • aとbのサイズ関係は不確定である.
  • I/O例


    abreturn35123335312

    コード-最初の解

    def solution(a, b):
        answer = 0
    
        if a == b:
            answer = a
            return answer
    
        if b < a :
            x = a
            a = b
            b = x
    
        for i in range(a, b+1):
            answer += i
    
        return answer
    
    a = 5
    b = 3
    print (solution(a, b))
  • aとbの大きさ関係を比較し,bがaより小さい場合,aとbを置換した.
  • for文を用いて,aからbの範囲を順次解答に集計する.
  • 和弦-2番目の解

    
    # (1)
    
    def solution(a, b):
        answer = 0
    
    
        if a == b:
            answer = a
            return answer
    
        if b < a :
            x = a
            a = b
            b = x
    
        a_b_len = b - a + 1
    
        if a_b_len % 2 == 0 :
            answer = (a+b) * (a_b_len//2)
    
        else :
            answer = (a+b) * ((a_b_len-1)//2) + ((a+b)/2)
    
        return int(answer)
    
    a = 5
    b = 3
    print (solution(a, b)) 
  • (1):対応する解により、時間の複雑さを節約した.1から6の範囲内であれば、1 2 3 4 5 6、1+6、2+5、3+4の値はすべて同じなので、一番前の数と一番後ろの数を足し合わせて、総数が6個の時の半分で、3を乗じて、7*3=21になります.1から7の範囲であれば、1 2 3 4 5 6 7、1+7、2+6、3+5の値はすべて同じで、中間数4しか残っていません.中間数を除いた値は上記の設計と同じで、最後に中間数を加えればいいです.
  • 📝 結果



    😃 に感銘を与える


    初めて
  • を解いた後、もっと効果的に問題を解決する方法を考えました.考えてみれば、aからb(a

    👍 Irishのすべてのコードを表示


    -> Irish Github