roimin1
@roimin1

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

複数行を足し算すること

解決したいこと

2つの整数の組がn個与えられるので、各組の計算結果を足し合わせたものを出力してください。
各組の計算結果は次の値です。
・2つの整数の組を足し合わせたもの
・ただし、2つの整数が同じ値だった場合は、掛け合わせたもの

を解いていますが式の途中で挫折しました。

入力例
n
a_1 b_1
...
a_n b_n

出力
各行の計算結果を足し合わせた値を出力(nではなく、二行目から最後までの行の数字を足し合わせたものを出力する。)
最後は改行し、余計な文字、空行を含んではいけません。

nは与えられる行数でa_iとb_iはそれぞれが整数です。

自分で試したこと

N = int(input()) #1行目のNを取得する
s = [input() for i in range(N)] #複数行の数値の入力を取得
for spt in s:
    #print(spt)#二行目から複数行出るようになった
    o, p = spt.split()
    #int(o)+int(p)#printすると各行ごとの合計が表示される
    if o=p:
        return int(o)*int(p)
    else:
        return int(o)+int(p)

ここまでやってみましたが、肝心の複数行の足し算ができていません。
左右の数字が異なる時は左右の合計は足し算で
左右の数字が同じであれば左右の合計は掛け算
なおかつ複数行そのものは左右がどうであれ足し算して
出力する内容は
複数行の足し算結果です。

0

1Answer

出力用の変数を用意しておいて、その変数に行ごとの計算結果を足してあげるだけで実現できると思います。
※if文のイコールが1つになっていたので、2つに修正しています。

N = int(input()) #1行目のNを取得する
s = [input() for i in range(N)] #複数行の数値の入力を取得

ans = 0
for spt in s:
    #print(spt)#二行目から複数行出るようになった
    o, p = spt.split()
    #int(o)+int(p)#printすると各行ごとの合計が表示される
    if o==p:
        ans += int(o)*int(p)
    else:
        ans += int(o)+int(p)
        
print(ans)
1Like

Comments

  1. @roimin1

    Questioner

    ありがとうございます。
    実際にトライしてみると成功いたしました。

Your answer might help someone💌