0
0

N 個の文字を半分ずつ出力 (paizaランク D 相当)

Last updated at Posted at 2023-11-15

今日の問題はこれ
https://paiza.jp/works/mondai/stdout_primer/stdout_primer__variable_array_step1

そんなに難しくない問題だと思って、
実際に下記のような回答を考えたのだが
print(n+1)のときにどうしても空白ができてしまうらしい。
print単独だと改行されるのは知っているが、空白になるのはなぜかわからず。

N = int(input())
for i in range(N):
    if i+1 == N/2:
        print(i+1)
    else:
        print(i+1,end=" ")

仕方がないので下のようにprintして吐き出してもらった

N = int(input())
for i in range(N):
    if i+1 == N/2:
        print(i+1)
        print('改行')
    else:
        print(i+1,end=" ")
        print('空白')

すると

1 空白
2 空白
3 空白
4
改行
5 空白
6 空白
7 空白
8 空白

という結果に。
つまり、この場合だと、8は空白でなくて改行しないといけないので
まちがっていることになる。
そのため、やり直し

N = int(input())

for i in range(1, N + 1):
    if i % (N // 2) == 0:
        print(i)
    else:
        print(i, end=" ")

N // 2というのは、商を出すもので、
この場合だと、4で、余りがゼロだったら改行するというもの。
これならiが4でも8でも改行する。
このために1時間もかけてしまった。。。

0
0
0

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