LoginSignup
0
0

【Paiza問題集】標準出力メニュー/n*nの2次元配列の表示

Last updated at Posted at 2023-05-23

Paiza問題集

標準出力メニュー/n*nの2次元配列の表示

Step01 2*2の出力

"""
2*2の出力
https://paiza.jp/works/mondai/stdout_primer/stdout_primer__2dim_array_step1
"""

# 数値の出力
print('{} {}'.format(0, 8))
print('{} {}'.format(1, 3))

別解1

# 数字の出力
print(0, 8)
print(1, 3)

別解2

# 数値の出力
print('0 8')
print('1 3')

Step02 3*3の出力

"""
3*3の出力
https://paiza.jp/works/mondai/stdout_primer/stdout_primer__2dim_array_step2
"""

# 数字を受け取る
numbers = input().split(' ')

# 3*3の表示する
for i in range(len(numbers)):
    # 数字の表示
    print(numbers[i], end='')
    # iの余りが2の時、改行する
    if i % 3 == 2:
        print()
    # それ以外はスペースでつなげる
    else:
        print(' ', end='')

別解

# 数字を受け取る
numbers = input().split()
# 数字列の表示
for i in range(0, len(numbers), 3):
    print(*numbers[i: i+3])

上記の例では

print(*numbers[i: i+3])

でnumbersをスライスで指定し表示させている

Step03 九九表の出力

"""
九九表の出力
https://paiza.jp/works/mondai/stdout_primer/stdout_primer__2dim_array_step3
"""

# 九九表の表示
for i in range(1, 10):

    for j in range(1, 10):
        if j == 9:
            print(i * j)
        else:
            print(i * j, end=' ')

別解

#九九表の表示
for i in range(1, 10):
    print(*[i*j for j in range(1, 10)])

内包表記を用いることで短く書くことができる

print(*[i*j for j in range(1, 10)])

は、jがrange(1, 10)の間i*jを行い
その結果を引数としてprint()に渡している

Final問題 【nnの2次元配列の表示】NNの九九表の表示

"""
【n*nの2次元配列の表示】N*Nの九九表の表示
"""

# 数字を受け取る
number = int(input())

# 受け取った数字*数字の表を表示する
for i in range(1, number + 1):

    for j in range(1, number + 1):
        if j == number:
            print(i * j)
        else:
            print(i * j, end=' ')

別解

# 数字を受け取る
number = int(input())

# 数字の表を出力する
for i in range(1, number+1):
    print(*[i*j for j in range(1, number+1)])
0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0