輸入銀行卡號的時候,一般為了卡號的合法性會做乙個判斷,使用了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輸出樣例 在這裡給出相應的輸出。例如 是...