pythonの演算子オーバーロードはIQ150を超える
この問題が解けた人はRT! pic.twitter.com/t3aqUBcOdV
— 暇つぶし処方箋 (@himahimabotdayo) 2016年3月12日
算数の問題だ!┗(^o^;)┓足し算かな????wwWwwWWw┏(;^o^)┛足し算じゃないな?????wWWWwww(´・`;) こ… これ…これは……演算子オーバーロードだあああああ┗(^o^)┛WwwwWW┏(^o^)┓ドコドコドコwwwwwwwwwww
IQ150もあるわけねーだろ
というわけでこの問題を演算子オーバーロードを使って解いてくれる
python3のソースコードです。(解法の説明は要らないと思われる)
overload.py
class N(int): def __init__(self,value): self.value = value def __add__(self,other): n1,n2 = self.value,other.value if n1 < n2: n1,n2 = n2,n1 #念の為 return str(n1 - n2) + str(n1 + n2) #a+bのフォーマットで標準入力 while True: a,b = map(int,input().split("+")) #標準入力から数値受け取り a,b = N(a),N(b) #わざわざ変換する answer = a + b #演算子オーバーロードだ!!!(これがやりたかっただけ) print("=" + str(answer))
実行結果
(標準入力時に改行しない方法を知ってる方がいたら教えてください)
$ python3 overload.py 6+4 =210 9+2 =711 8+5 =313 5+2 =37 7+6 =113