回答編集履歴
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 | 
             
            ```
         | 
