嘿,我正在为学校的作业做 Luhn 的算法。
一些输出以正确的方式出现;但是,有些不是。
0004222222222222
给我一共44
,
和
0378282246310005
给我一共48
,
举几个例子。
我知道我的代码不是最干净的,因为我是新手,但如果有人能确定我的错误在哪里,我将不胜感激
这是我的代码:
cardNumber = input( "What is your card number? ")
digit = len(cardNumber)
value = 0
total = 0
while ( len( cardNumber ) == 16 and digit > 0):
# HANDLE even digit positions
if ( digit % 2 == 0 ):
value = ( int( cardNumber[digit - 1]) * 2 )
if( value > 9 ):
double = str( value )
value = int( double[:1] ) + int( double[-1] )
total = total + value
value = 0
digit = digit - 1
else:
total = total + value
value = 0
digit = digit - 1
# HANDLE odd digit positions
elif ( digit % 2 != 0):
total = total + int( cardNumber[digit - 1] )
digit = digit - 1