13test02:信用卡校验
/*#include<iostream>
using namespace std;
void input();
int counter=0,jishu_sum=0,oushu_sum=0,sum=0;
int input_num[20];
int main()
{
cout<<"Please enter 16 to 19 numbers which arrange from 0~9:,input 'e' means end";
cout<<endl;
input();
cout<<"Inputed numbers is: "<<endl;
for(int i=0;i<counter;i++)
cout<<input_num[i];
int jishu_i=counter;
int oushu_i=counter;
do
{
jishu_sum+=input_num[jishu_i];
jishu_i-=2;
}
while(jishu_i>=0);
do
{
int oushu=input_num[oushu_i-1]*2;
if(oushu>9) oushu-=9;
oushu_sum+=oushu;
oushu_i-=2;
}
while(oushu_i>=0);
sum=oushu_sum+jishu_sum;
if(!(sum%10))
cout<<endl<<"The card numbers is ligal."<<endl;
else
cout<<endl<<"The card numbers is illigal."<<endl;
return 1;
}
void input()
{
char end;
do
{ if(counter<20)
{ cin>>input_num[counter];
while(input_num[counter]>9)
{
cout<<"error,please enter numbers from 0~9:";
cin>>input_num[counter];
}
cout<<"end?";
cin>>end;
cout<<counter+1<<" numbers have been inputed"<<endl<<"please enter numbers from 0~9"<<endl;
++counter;
}
else
{
cout<<"input again:";
counter=0;
input();
}
}while(end!='e');
}*/
#include<iostream>
using namespace std;
int input(char*);
int sum1(char*,int);
int main()
{
char buffer[30]={'0'};
int numbers=input(buffer);
int sum=sum1(buffer,numbers);//不要让函数名与变量名相同.
if(sum%10==0)cout<<"ligal;"<<endl;
else cout<<"illigal:"<<endl;
return 0;
}
int input(char*p)
{
cout<<"请输入16至19位0~9的数字:"<<endl;
int i=0;
do{
if(i==30)break;
p[i]=(char)getchar();//getchar()返回值是读取字符对应的ASCII值。
//可以将其强制转化为char类型
//cout<<p[i];
}while(p[i++]!='\n');
if(i<17||i>20)
{
cout<<"位数输入错误,请重新输入:"<<endl;
input(p);
}
else cout<<"the card number:"<<p<<endl;
return i;//函数可以返回局部变量但是不能返回局部指针.
}
int sum1(char* p,int x)
{
int oushu_sum=0,jishu_sum=0;
for(int i=x-1;i>=0;i-=2)
jishu_sum+=p[i];
for(i=x-2;i>=0;i-=2)
{
if(p[i]*2>=10)
oushu_sum+=p[i]*2-9;
else oushu_sum+=p[i]*2;
}
return oushu_sum+jishu_sum;
}
/*int main()
{
cout<<100-'a';//计算机对字符常量的处理是将其翻译为对应的ASCII值
//虽然肉眼看到的是‘a',但是计算机执行的时候看到是其码值.
}*/
13test02:信用卡校验的更多相关文章
- 完整的JavaScript版的信用卡校验代码
function isValidCreditCard(type, ccnum) { if (type == "Visa") { // Visa: length 16, prefix ...
- Object-C 银行卡,信用卡校验规则(Luhn算法)
最近的项目中涉及到绑定用户的银行卡,借记卡.经过查找银行卡的校验规是采用 Luhn算法进行验证. Luhn算法,也被称作“模10算法”.它是一种简单的校验公式,一般会被用于身份证号码,IMEI号码,美 ...
- Java实现信用卡校验
当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这么担心,因为并不是一个随便的信用卡号码都是合法的,它必须通过Luhn算法来验证通过. 该校验的过程: 1.从卡号最后一位数字开始, ...
- ios 判断,qq,银行卡,手机号,邮编,生日,数字,字符串,护照, email
http://blog.csdn.net/dyllove98/article/details/8635079 IdentifierValidator.h // // IdentifierValida ...
- 算法笔记_228:信用卡号校验(Java)
目录 1 问题描述 2 解决方案 1 问题描述 当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这么担心,因为并不是一个随便的信用卡号码都是合法的,它必须通过Luhn算法来验证 ...
- PHP中使用Luhn算法校验信用卡及借记卡卡号
Luhn算法会通过校验码对一串数字进行验证,校验码通常会被加到这串数字的末尾处,从而得到一个完整的身份识别码. 我们以数字“7992739871”为例,计算其校验位: 从校验位开始,从右往左,偶数位乘 ...
- SpringMvc中的数据校验
SpringMvc中的数据校验 Hibernate校验框架中提供了很多注解的校验,如下: 注解 运行时检查 @AssertFalse 被注解的元素必须为false @AssertTrue 被注解的元素 ...
- jQuery校验
jQuery校验 官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation 一导入js库 <script src=&q ...
- jQuery校验validate详解(转)
jQuery校验 官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation 一导入js库 <script src=&q ...
随机推荐
- 6.python字符串-内置方法列举
所谓内置方法,就是凡是字符串都能用的方法,这个方法在创建字符串的类中,下面是总结: 首先,我们要学习一个获取帮助的内置函数 help(对象) ,对象可以是一个我们创建出来的,也可以是创建对象的那个类, ...
- [terry笔记]RMAN综合学习之恢复
[terry笔记]RMAN综合学习之备份http://www.cnblogs.com/kkterry/p/3308405.html [terry笔记]RMAN综合学习之恢复 http://www.cn ...
- MongoDB 学习笔记(二)—— MongoDB Shell
MongoDB自带一个JavaScript shell 可以从命令行中与MongoDB交互,功能非常强大.如在上一节最后一张图所看到,可以执行JavaScript程序. 运行Shell 前提是启动Mo ...
- 九度oj 1530 最长不重复子串
原题链接:http://ac.jobdu.com/problem.php?pid=1530 字符串简单题,看似O(n^2)的复杂度10000的数据量会tle,其实最长不重复子串不超过26个嘛... 如 ...
- UIAlertController——之Block回调
iOS8.0之后出现的提示框 =.=,比自己去改block回调要好.
- MongoDB学习笔记-数据库命令
概念 数据库命令(database command)是一种非常特殊类型的查询.文档的创建.更新.删除及查询都属于数据库命令的范畴,它还包含管理性的任务(比如关闭服务器和克隆数据库).统计数据及执行聚合 ...
- python学习笔记1
python3.3使用urllib2报错 no module named urllib2,原因是python3中将urllib2换成了request. 所以要使用import urllib.reque ...
- 设置xx-net,访问youtube等国外网站
配合使用chrome+xx-net,就可以免费访问youtube等外网了.步骤如下: 1. 按照https://github.com/XX-net/XX-Net/wiki/%E4%BD%BF%E7%9 ...
- [vsftp服务]——ftp虚拟用户、权限设置等的实验
搭建ftp服务器,满足以下要求: 1.允许匿名用户登录服务器并下载文件,下载速度设置为最高2MB/s 2.不允许本地用户登录ftp服务器 3.在服务器添加虚拟用户vuser01.vuser02.vus ...
- MyEclipse导入jquery等文件报错的解决方案
1.选中报错的jquery文件例如“jquery-1.8.0.min.js”. 2.右键选择 MyEclipse-->Exclude From Validation . 3.再右键选择 MyEc ...