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...