Python で鶴亀算を解いてみます。
問題
鶴と亀が合わせてN匹、足の数がM本でした。鶴と亀は何匹いるでしょうか?
回答
力ずく法
ループを回して、答えが見つかるまで総当たりします。
計算量は \( O (N) \) です。
N, M = map(int,input().split()) for i in range(1, N+1): # 足の数 f = 2 * i + 4 * (N - i) if f == M: print(f'鶴が{i}匹の足が{i * 2}本、亀が{N - i}匹の足が{M - i * 2}本。') break else: print('普通の鶴と亀ではないようです。')
連立方程式
鶴と亀の数をそれぞれ\(x\)、\(y\)、総匹数を\(n\)、足の総本数を\(m\)とすると、以下のように立式できます。
$$\begin{eqnarray} \left\{ \begin{array}{l} x + y = n \\ 2x + 4y = m \end{array} \right. \end{eqnarray}$$
よって、鶴は以下になります。
$$x=\frac{(4n-m)}{2}$$
計算量は \( O (1) \) です。
N, M = map(int,input().split()) crain = (4 * N - M) / 2 if crain.is_integer() and crain > 0: crain = int(crain) print(f'鶴が{crain}匹の足が{crain * 2}本、亀が{N - crain}匹の足が{M - crain * 2}本。') else: print('普通の鶴と亀ではないようです。')