为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 银行信用卡号验证初探

银行信用卡号验证初探

2018-10-06 3页 doc 13KB 5阅读

用户头像

is_314871

暂无简介

举报
银行信用卡号验证初探银行信用卡号验证初探 /*5、当你输入信用卡号码的时候,有没有担心输错了而造成损失呢,其实可以不必这么担心,因为并不是一个随便的信用卡号码都是合法的,它必须通过Luhn算法来验证通过。 该校验的过程: 1、从卡号最后一位数字开始,逆向将奇数位(1、3、5等等)相加。 2、从卡号最后一位数字开始,逆向将偶数位数字,先乘以2(如果乘积为两位数,则将其减去9),再求和。 3、将奇数位总和加上偶数位总和,结果应该可以被10整除。 例如,卡号是:1 则奇数、偶数位(用红色标出)分布:1 奇数位和=35 偶数位乘以2(有...
银行信用卡号验证初探
银行信用卡号验证初探 /*5、当你输入信用卡号码的时候,有没有担心输错了而造成损失呢,其实可以不必这么担心,因为并不是一个随便的信用卡号码都是合法的,它必须通过Luhn算法来验证通过。 该校验的过程: 1、从卡号最后一位数字开始,逆向将奇数位(1、3、5等等)相加。 2、从卡号最后一位数字开始,逆向将偶数位数字,先乘以2(如果乘积为两位数,则将其减去9),再求和。 3、将奇数位总和加上偶数位总和,结果应该可以被10整除。 例如,卡号是:1 则奇数、偶数位(用红色标出)分布:1 奇数位和=35 偶数位乘以2(有些要减去9)的结果:1 6 2 6 1 5 7 7,求和=35。 最后35+35=70 可以被10整除,认定校验通过。 请编写一个程序,从键盘输入卡号,然后判断是否校验通过。通过显示:“成功”,否则显示“失败”。 比如,用户输入: 程序输出:成功*/ /*交流讨论信箱:askrsw@qq.com*/ #include #include #include int main(int argc,char** argv) { while(true) { char szNumber[128] = {0}; printf("Please input the bank number(0 to exit):"); scanf("%s",szNumber); if(szNumber[0]=='0') break; int nLen = strlen(szNumber); int nEvenSum=0,nOddSum=0; if(nLen%2==0) { for(int i=0;i=10?tmp-9:tmp); nOddSum += (szNumber[i+1] - '0'); } } else { for(int i=0;i<(nLen-1);i+=2) { nOddSum += (szNumber[i]-'0'); int tmp = (szNumber[i+1]-'0')*2; nEvenSum += (tmp>=10?tmp-9:tmp); } nOddSum += (szNumber[nLen-1]-'0'); } if((nOddSum+nEvenSum)%10==0) { printf("成功\n"); } else { printf("失败\n"); } } return 0; }
/
本文档为【银行信用卡号验证初探】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索