回答編集履歴
5
追記3
answer
CHANGED
@@ -51,4 +51,23 @@
|
|
51
51
|
print(k)
|
52
52
|
break
|
53
53
|
```
|
54
|
-
説明してほしいなら、コメントください。
|
54
|
+
説明してほしいなら、コメントください。
|
55
|
+
|
56
|
+
**追記3**
|
57
|
+
「わかりました!」というコメントだったので、説明は不要なんですね。
|
58
|
+
質問のコードのどこが悪かったのかを本当に分かったのかどうか疑問ですが、
|
59
|
+
結局やりたかったことは次のようなことだったようです。
|
60
|
+
```Python
|
61
|
+
s = input() # string
|
62
|
+
a = list(map(int, s)) # array of int
|
63
|
+
d = [ {s[0]:a[0]}, {}, {}, {} ] # dict list
|
64
|
+
for i in range(1, 4):
|
65
|
+
for k, v in d[i-1].items():
|
66
|
+
d[i][k + '+' + s[i]] = v + a[i]
|
67
|
+
d[i][k + '-' + s[i]] = v - a[i]
|
68
|
+
for k, v in d[3].items():
|
69
|
+
if v == 7:
|
70
|
+
print(k + '=7')
|
71
|
+
break
|
72
|
+
```
|
73
|
+
タイトルが「切手問題」のままで、「切符の番号の問題」に修正されなかったことが残念です。
|
4
コードの修正
answer
CHANGED
@@ -43,7 +43,7 @@
|
|
43
43
|
|
44
44
|
s(1).dic.setdefault(strlist[0], intlist[0])
|
45
45
|
for i in range(1, 4):
|
46
|
-
for j in
|
46
|
+
for j in s(i).dic:
|
47
47
|
s(i+1).dic.setdefault(j+"+"+strlist[i], s(i).dic[j]+intlist[i])
|
48
48
|
s(i+1).dic.setdefault(j+"-"+strlist[i], s(i).dic[j]-intlist[i])
|
49
49
|
for k, v in s(4).dic.items():
|
3
追記2 のコードの修正
answer
CHANGED
@@ -46,8 +46,8 @@
|
|
46
46
|
for j in (s(i).dic).keys():
|
47
47
|
s(i+1).dic.setdefault(j+"+"+strlist[i], s(i).dic[j]+intlist[i])
|
48
48
|
s(i+1).dic.setdefault(j+"-"+strlist[i], s(i).dic[j]-intlist[i])
|
49
|
-
for k in s(4).dic:
|
49
|
+
for k, v in s(4).dic.items():
|
50
|
-
if
|
50
|
+
if v == 7:
|
51
51
|
print(k)
|
52
52
|
break
|
53
53
|
```
|
2
追記2
answer
CHANGED
@@ -26,4 +26,29 @@
|
|
26
26
|
print(f'{a[0]}{a[1]:+d}{a[2]:+d}{a[3]:+d}=7')
|
27
27
|
exit()
|
28
28
|
f(1)
|
29
|
-
```
|
29
|
+
```
|
30
|
+
**追記2**
|
31
|
+
元のコードを生かしたコードです。
|
32
|
+
```Python
|
33
|
+
strlist = list(input())
|
34
|
+
intlist = [int(i) for i in strlist]
|
35
|
+
|
36
|
+
class s:
|
37
|
+
def __init__(self, x):
|
38
|
+
self.val = x
|
39
|
+
self.dic = {}
|
40
|
+
|
41
|
+
a = [s(1), s(2), s(3), s(4)]
|
42
|
+
def s(i): return a[i-1]
|
43
|
+
|
44
|
+
s(1).dic.setdefault(strlist[0], intlist[0])
|
45
|
+
for i in range(1, 4):
|
46
|
+
for j in (s(i).dic).keys():
|
47
|
+
s(i+1).dic.setdefault(j+"+"+strlist[i], s(i).dic[j]+intlist[i])
|
48
|
+
s(i+1).dic.setdefault(j+"-"+strlist[i], s(i).dic[j]-intlist[i])
|
49
|
+
for k in s(4).dic:
|
50
|
+
if s(4).dic[k] == 7:
|
51
|
+
print(k)
|
52
|
+
break
|
53
|
+
```
|
54
|
+
説明してほしいなら、コメントください。
|
1
別解の追記
answer
CHANGED
@@ -12,4 +12,18 @@
|
|
12
12
|
print(''.join(e))
|
13
13
|
exit()
|
14
14
|
f(1, int(e[0]))
|
15
|
+
```
|
16
|
+
**追記**
|
17
|
+
別解
|
18
|
+
```Python
|
19
|
+
a = list(map(int, input()))
|
20
|
+
def f(i):
|
21
|
+
if i < 4:
|
22
|
+
for j in range(2):
|
23
|
+
f(i + 1)
|
24
|
+
a[i] = -a[i]
|
25
|
+
elif sum(a) == 7:
|
26
|
+
print(f'{a[0]}{a[1]:+d}{a[2]:+d}{a[3]:+d}=7')
|
27
|
+
exit()
|
28
|
+
f(1)
|
15
29
|
```
|