我一直在設計驗證GTIN-8代碼的代碼。我已經看過如何找到一個10的相等或更高的倍數,我迄今沒有成功,希望你們能幫助我!等號或更高的倍數,Python
這裏是一個小的代碼,我需要找到的10
NewNumber = (NewGtin_1 + Gtin_2 + NewGtin_3 + Gtin_4 + NewGtin_5 + Gtin_6 + NewGtin_7)
print (NewNumber)
我一直在設計驗證GTIN-8代碼的代碼。我已經看過如何找到一個10的相等或更高的倍數,我迄今沒有成功,希望你們能幫助我!等號或更高的倍數,Python
這裏是一個小的代碼,我需要找到的10
NewNumber = (NewGtin_1 + Gtin_2 + NewGtin_3 + Gtin_4 + NewGtin_5 + Gtin_6 + NewGtin_7)
print (NewNumber)
如果你的意思是找到10的最小倍數是大於或等於你的電話號碼,試圖
def round_up_by_10s(num):
return -((-num) // 10) * 10
,對於正數和負數的作品,整數或浮點數,在Python 2.x或Python 3.x.它也避免了if語句,可以寫成一行。對於浮點數,它返回一個浮點數:如果您希望返回值始終爲整數,則將返回值包圍在int(...)
之間。
如果你的意思發現是你的號碼和10的倍數的最小數量,儘量的10
def lcm10(num):
return (10 // gcd(num, 10)) * num
謝謝,這有幫助。我的意思是10的最小倍數大於或等於數字。 –
一般來說,等於或高於多個來講你可以找到與modulo操作的倍數:
if number % 10 == 0:
do something
這有點幫助了我,但是我需要找到號碼然後做點事情,if語句不是必需的 –
@NScott但是如果你不檢查它是否是10的倍數,你打算如何找到那個號碼?另外,如果我幫助你,考慮提高我的解決方案。 –
我我猜你是什麼10的最小倍數高於或等於NewNumber。如果是這樣的話,做的事:
last_digit = NewNumber % 10
bigger = NewNumber - last_digit
if last_digit != 0:
bigger += 10
而且,你不應該使用大寫字母開始的變量名,這些通常只用於類。
嘗試使用這樣的:
# method 1 for integers
n = NewNumber/10 * 10
if n < NewNumber: n += 10
# method 2 for floats, decimals
import math
n = math.ceil(NewNumber/10) * 10
相等或更高倍數相對於什麼號碼? –
您顯示的代碼無助於理解您的問題。 – polku