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;}
版权声明:本文为博主原创文章,未经博主允许不得转载。
她是应该难过的往回走,还是蹲下来哭泣?