在 d 位數字中,印出距離 <= k 的數字
(限制前提: d >= 2,k <= 8)
舉例 d = 2 時,代表要在 10~99 間,印出距離 <= k 的數字
距離的定義為 相鄰兩兩字之間的差距 之最大差距
例如數字 1658
其相鄰兩數的差距為 |1-6|, |6-5|, |5-8| = 5, 1, 3
那麼 1658 這個數字的距離就是 5
若 5 <= k,則印出 1658
def rtn_max_distance(s):
l1 = [int(i) for i in str(s)]
l2 = l1[:-1]
l3 = l1[1:]
l4 = [ abs(a - b) for a, b in zip(l2,l3) ]
return max(l4)
print(rtn_max_distance(1658))
print(rtn_max_distance(1758))
print(rtn_max_distance(2758))
寫了個函數.至於跟那個k比較等等,就你自己補吧.
引用了一下屠豬大的func修改後的程式
def rtn_max_distance(s):
l1 = [int(i) for i in str(s)]
l2 = l1[:-1]
l3 = l1[1:]
l4 = [ abs(a - b) for a, b in zip(l2,l3) ]
return max(l4)
d = int(input())
max_num = 10**d - 1
d = d -1
min_num =10**d
k =int(input())
for i in range(min_num,max_num+1):
distance = rtn_max_distance(i)
if k >= distance:
print(i)