iT邦幫忙

0

python 如何把每個位數提出來相減

  • 分享至 

  • xImage

在 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

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
1
一級屠豬士
iT邦大師 1 級 ‧ 2022-04-04 00:08:36
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比較等等,就你自己補吧.

/images/emoticon/emoticon35.gif

0
0
ragequit
iT邦新手 5 級 ‧ 2022-04-06 10:10:36

引用了一下屠豬大的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)

我要發表回答

立即登入回答