第三题解答 ``` import numpy as np from itertools import combinations def get_num_via_list(num_list): res = 0 for idx, n in enumerate(num_list[::-1]): res += pow(10, idx) * n return res def cal_len(n): num = 0 num_list = [] while n // 10 != 0: num += 1 num_list.append(n % 10) n = n // 10 num_list.append(n % 10) return num + 1, num_list[::-1] def get_rid_of_one_num(n): _, num_list = cal_len(n) if n < 10: return [n] comb_list = list(combinations(num_list, len(num_list) - 1)) res = [] for comb in comb_list: comb = list(comb) if comb[0] != 0: res.append(get_num_via_list(comb)) return res x = 100 res = 0 n, _ = cal_len(x) for A in range(x, -1, -1): B = x - A A_n, _ = cal_len(A) B_n, _ = cal_len(B) get_rid_A = get_rid_of_one_num(A) if A_n - B_n == 1 and B in get_rid_A: res += 1 print(A, B) print(res) ```