银行卡校验易语言源码
.版本 2
.子程序 银行卡卡号校验, 逻辑型, , 一般都是19位
.参数 卡号, 文本型
.局部变量 m, 整数型, , "10"
.局部变量 i, 整数型
.局部变量 digit, 整数型
.局部变量 sum, 整数型
.局部变量 odd, 整数型
m [1] = 0
m [2] = 2
m [3] = 4
m [4] = 6
m [5] = 8
m [6] = 1
m [7] = 3
m [8] = 5
m [9] = 7
m [10] = 9
odd = 1
.变量循环首 (取文本长度 (卡号), 1, -1, i)
digit = 取代码 (卡号, i) - 48
sum = sum + 选择 (odd ≠ 0, digit, m [digit + 1])
.如果 (odd = 1)
odd = 0
.否则
odd = 1
.如果结束
.变量循环尾 ()
' const int m[] = {0,2,4,6,8,1,3,5,7,9}; // mapping for rule 3
' int i, odd = 1, sum = 0;
' for (i = strlen(cc); i--; odd = !odd)
' {
' int digit = cc[i] - '0';
' sum += odd ? digit : m[digit];
' }
返回 (sum % 10 = 0)
易语言银行卡监控