回答編集履歴

1

追記

2022/09/26 17:22

投稿

kazuma-s
kazuma-s

スコア8224

test CHANGED
@@ -4,3 +4,65 @@
4
4
  for i in range(-8, 9):
5
5
  print(''.join(str(9-max(abs(i), abs(j))) for j in range(-8, 9)))
6
6
  ```
7
+ **追記**
8
+ 九九表のコードを元にするなら、まず次のコードを書きます。
9
+ ```Python
10
+ for i in range(1, 10):
11
+ for j in range(1, 10):
12
+ print(j, end='')
13
+ print()
14
+ ```
15
+ i行目は i より大きい数は i にしないといけないので、
16
+ ```Python
17
+ for i in range(1, 10):
18
+ for j in range(1, 10):
19
+ if j < i:
20
+ print(j, end='')
21
+ else:
22
+ print(i, end='')
23
+ print()
24
+ ```
25
+ 1~8列目と同じ数を 8~1列として追加すればいいので、
26
+ ```Python
27
+ for i in range(1, 10):
28
+ for j in range(1, 10):
29
+ if j < i:
30
+ print(j, end='')
31
+ else:
32
+ print(i, end='')
33
+ for j in range(8, 0, -1):
34
+ if j < i:
35
+ print(j, end='')
36
+ else:
37
+ print(i, end='')
38
+ print()
39
+ ```
40
+ 1~8行目と同じ表示を 8~1行として追加すればいいので、
41
+ ```Python
42
+ for i in range(1, 10):
43
+ for j in range(1, 10):
44
+ if j < i:
45
+ print(j, end='')
46
+ else:
47
+ print(i, end='')
48
+ for j in range(8, 0, -1):
49
+ if j < i:
50
+ print(j, end='')
51
+ else:
52
+ print(i, end='')
53
+ print()
54
+ for i in range(8, 0, -1):
55
+ for j in range(1, 10):
56
+ if j < i:
57
+ print(j, end='')
58
+ else:
59
+ print(i, end='')
60
+ for j in range(8, 0, -1):
61
+ if j < i:
62
+ print(j, end='')
63
+ else:
64
+ print(i, end='')
65
+ print()
66
+ ```
67
+ あとは、これをどうすればもっと簡潔に書けるかを考えてみるのはどうでしょうか?
68
+