驗證銀行卡號正確性的演算法

2021-08-21 07:46:23 字數 1602 閱讀 9404

public static functionluhm(

$cardno

)$lastnum

= substr

($cardno,-1

);

//取出最後一位(與luhm進行比較)

$first15num

= substr

($cardno,0

,-1);//前15或18位

$newarr

= str_split

(strrev

($first15num

));//前15或18位反轉後轉換為陣列

$oddarr

= ;

//奇數字*2的積 <9

$oddarr2

= ;

//奇數字*2的積 >9

$evenarr

= ;

//偶數字陣列

for($j=

0;$j<

count

($newarr

);$j

++)

else

}else

}$oddchild1

= ;

//奇數字*2 >9 的分割之後的陣列個位數

$oddchild2

= ;

//奇數字*2 >9 的分割之後的陣列十位數

foreach(

$oddarr2

as$ov

)$sumodd

= array_sum

($oddarr

);

//奇數字*2 < 9 的陣列之和

$sumeven

= array_sum

($evenarr

); //偶數字陣列之和

$sumoddchild1

= array_sum

($oddchild1

); //奇數字*2 >9 的分割之後的陣列個位數之和

$sumoddchild2

= array_sum

($oddchild2

); //奇數字*2 >9 的分割之後的陣列十位數之和

//計算總和

$sumtotal

= ($sumodd

+ $sumeven

+ $sumoddchild1

+ $sumoddchild2

);//計算luhm值

$k = (

$sumtotal

% 10

== 0

) ?

10 : (

$sumtotal

% 10

);$luhm

= 10

- $k

;if(

$lastnum

== $luhm

)else

}}

銀行卡號驗證js Luhn演算法

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

銀行卡號驗證 php

16 19 位卡號校驗位採用 luhn 校驗方法計算 第一步 把信用卡號倒序 61789372994 第二步 取出倒序後的奇數字置上的號碼,相加等到總和s1。eg s1 6 7 9 7 9 4 42 第三步 取出倒序後的偶數字置上的號碼,每個號碼乘以2。eg 2,16,6,4,18 第四步 把第三步...

驗證正確性的方法

驗證正確性的方法 1 bug和除錯 bug的 嗎?除錯,就是找出程式中的錯誤並改正 演算法錯誤 是指乙個演算法中引起該演算法不能實現其預定目標的熱病和錯誤。主要包括四種基本型別 二義性,語法錯誤,語義錯誤,邏輯錯誤 1.1二義性,演算法中比較容易消除的一類。一般體現在指令表達不準確或者不明確。1.2...