d299. 程式設計師的面試問題
Medium Last Update: 2026/01/30
數學
求以下 10 個字母所代表的數字
重複的字母為相同的阿拉伯數字
+FSOIRTTXTEETYNNY
解法一
🔹 推理
+aFSbOIcRTTXdTEETYNNY
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 = 22 或 8 + 8 + 7 = 23
🔹 驗證
設 T = 7, R = 8
整理式子
未被使用過的數字為 2, 4, 6
不合(找不到 S = F + 1)
+1FS2911877307557Y00Y
– – –
設 T = 8, R = 6
整理式子
未被使用過的數字為 2, 4, 7
不合(找不到 S = F + 1)
+1FS2911688308558Y00Y
– – –
設 T = 8, R = 7
整理式子
未被使用過的數字為 2, 3, 6
+12329117884085586006
最終得出 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;
}