C语言实现Luhn 校验

LUHN算法,主要用来计算信用卡等证件号码的合法性。

1、从卡号最后一位数字开始,偶数位乘以2,如果乘以2的结果是两位数,,将两个位上数字相加保存。

2、把所有数字相加,得到总和。

3、如果信用卡号码是合法的,总和可以被10整除

#include <stdio.h>#include <string.h>#include <stdlib.h>int main(int argc, const char * argv[]) {char num[30];while(gets(num)!=NULL){int len=(int)strlen(num);int sum=0;int tmp;for(int i=len-1;i>=0;i–){if((len-i)%2==1) //奇数位sum+=num[i]-'0';else//偶数位{tmp=(num[i]-'0')*2;sum+=tmp>=10?tmp-9:tmp;}}printf("sum=%d\n",sum);}return 0;}

版权声明:本文为博主原创文章,未经博主允许不得转载。

她是应该难过的往回走,还是蹲下来哭泣?

C语言实现Luhn 校验

相关文章:

你感兴趣的文章:

标签云: