iOS 銀行卡號合法性判斷

2021-08-17 20:22:02 字數 667 閱讀 6071

輸入銀行卡號的時候,一般為了卡號的合法性會做乙個判斷,使用了luhn演算法

luhn演算法步驟:

1、從卡號的末位開始,逆向將奇數字相加;

2、從卡號的末位開始,逆向將偶數字先乘2,如果得到的數為兩位數則減9,再將得到的數求和;

3、將奇數字的和與偶數字的和相加得到的數除以10,如果可以被10整除,則這個卡號是合法的。

舉個栗子:

卡號:6227612145830440(網上搜的)

奇數字的和:0+4+3+5+1+1+7+2=23

偶數字(已經減9)的和:8+0+7+8+4+3+4+3=37

23+37 = 60 可以被10整除,說明這個卡號是合法的。

而且這個演算法,我個人測得信用卡(網上找的)和借記卡(周圍同事的)都是通過的,說明還是比較靠譜。

下面貼出**

-(bool)checkbankcardnumber:(nsstring *)cardnumber

evensum += lastnumber;

}else

} allsum = oddsum + evensum;

// 是否合法

if (allsum%10 == 0)

else

}

銀行卡合法性校驗

luhn檢驗數字演算法 luhn check digit algorithm 也叫做模數10公式,是一種簡單的演算法,用於驗證銀行卡 信用卡號碼的有效性的演算法。對所有大型信用卡公司發行的信用卡都起作用,這些公司包括美國express 護照 萬事達卡 discover和用餐者俱樂部等。這種演算法最初...

js判斷銀行卡號

判斷是否為正確的銀行卡號,正確返回true,否則返回false luhm校驗規則 16位銀行卡號 19位通用 1.將未帶校驗位的 15 或18 位卡號從右依次編號 1 到 15 18 位於奇數字型大小上的數字乘以 2。2.將奇位乘積的個十位全部相加,再加上所有偶數字上的數字。3.將加法和加上校驗位能...

輸入合法性判斷 素數判斷

實現isprime 函式,引數為整數,要有異常處理。如果整數是素數,返回true,否則返回false。輸入格式 輸入乙個數 輸出格式 如果整數是素數,輸出 是素數 否則輸出 不是素數 如果輸入不滿足要求,輸出 輸入錯誤 輸入樣例 在這裡給出一組輸入。例如 11輸出樣例 在這裡給出相應的輸出。例如 是...