ZJANS

d299. 程式設計師的面試問題

Medium Last Update: 2026/01/30
數學

求以下 10 個字母所代表的數字
重複的字母為相同的阿拉伯數字


FORTYTEN+TENSIXTY\begin{matrix} & F & O & R & T & Y \\ & & & T & E & N \\ + & & & T & E & N \\ \hline & S & I & X & T & Y \\ \end{matrix}

解法一

🔹 推理

abcdFORTYTEN+TENSIXTY\begin{matrix} & a & b & c & d & \\ & F & O & R & T & Y \\ & & & T & E & N \\ + & & & T & E & N \\ \hline & S & I & X & T & Y \\ \end{matrix}

a, b, c, d 表示進位

Y + N + N = Y or 10+Y
因為 T + E + E = T
所以 d 不能是 1,得 N = 0

T + E + E = T
E = 5, c = 1(0 被 N 用過)

O + b = I or 10+I,又 a 不為 0
因此 O + b > 10
0 被 N 用過,所以 I 不能是 0
O = 9, I = 1, b = 2, a = 1

S = F + 1

1 + R + T + T > 21
整理後得 R + T + T > 20
窮舉符合條件的 R 與 T
對於 T = 7:7 + 7 + 8 = 22
對於 T = 8:8 + 8 + 6 = 228 + 8 + 7 = 23

🔹 驗證

設 T = 7, R = 8
整理式子
未被使用過的數字為 2, 4, 6

不合(找不到 S = F + 1)

1210F987Y750+750S137Y\begin{matrix} & 1 & 2 & 1 & 0 & \\ & F & 9 & 8 & 7 & Y \\ & & & 7 & 5 & 0 \\ + & & & 7 & 5 & 0 \\ \hline & S & 1 & 3 & 7 & Y \\ \end{matrix}

– – –

設 T = 8, R = 6
整理式子
未被使用過的數字為 2, 4, 7

不合(找不到 S = F + 1)

1210F968Y850+850S138Y\begin{matrix} & 1 & 2 & 1 & 0 & \\ & F & 9 & 6 & 8 & Y \\ & & & 8 & 5 & 0 \\ + & & & 8 & 5 & 0 \\ \hline & S & 1 & 3 & 8 & Y \\ \end{matrix}

– – –

設 T = 8, R = 7
整理式子
未被使用過的數字為 2, 3, 6

121029786850+85031486\begin{matrix} & 1 & 2 & 1 & 0 & \\ & 2 & 9 & 7 & 8 & 6 \\ & & & 8 & 5 & 0 \\ + & & & 8 & 5 & 0 \\ \hline & 3 & 1 & 4 & 8 & 6 \\ \end{matrix}

最終得出 29786 + 850 + 850 = 31486

✅ 完整代碼

評分結果(參考) : AC (1ms, 312KB)

#include <bits/stdc++.h>
#define int long long
using namespace std;

signed main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    
    cout << "29786 + 850 + 850 = 31486";
    
    return 0;
}