0102: Matrix-like Computation

表計算

問題ページ

解き方

行列を入れるリストmatrix[row][column]を用意し、1行目から行列の値とその和を出力していくだけ。ただし、右詰め5桁で出力する必要があるので、formatを使う。

最後の行は列の和を出力するがこれはzipを使えば簡単に求めることができる。

コード(python)

while True:
    n = int(input())
    if n == 0:
        break
    matrix = [list(map(int, input().split())) for _ in range(n)]
    for i in range(n):
        sum_ = sum(matrix[i])
        print(str("{:>5d}" * (n+1)).format(*matrix[i], sum_))
    sum_ = [sum(e) for e in list(zip(*matrix))]
    print(str("{:>5d}" * (n+1)).format(*sum_, sum(sum_)))