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 ...
随机推荐
- Python初学者笔记:打印出斐波那契数列的前10项
问题:斐波那契数列(意大利语: Successione di Fibonacci),又称黄金分割数列.费波那西数列.费波拿契数.费氏数列,指的是这样一个数列:0.1.1.2.3.5.8.13.21.- ...
- 实战Django:官方实例Part4
上一个part我们创建了投票的内容页,但这个页面仅仅局限于静态展示,投票的"投"字还无从体现.接下来,我们就来看一下,如何把票投起来. 19.创建表单 我们来更新模板文件pol ...
- python去掉空行
#用strip(),split()两个方法都可以判断空行 infile=open('/.../','r') outfile=open('/.../','w') for li in infile.rea ...
- Ztack学习笔记(6)-广播组播点播
Zigbee网络中进行数据通信主要有三种类型:单播.组播.广播.那这三种方式如何设置呢,在哪里设置呢, 一. 广播 当应用程序需要将数据包发送给网络的每一个设备时,使用这种模式.广播的短地址有三种 0 ...
- 转 在SQL Server中创建用户角色及授权(使用SQL语句)
目录 要想成功访问 SQL Server 数据库中的数据 我们需要两个方面的授权 完整的代码示例 使用存储过程来完成用户创建 实例 要想成功访问 SQL Server 数据库中的数据, 我们需要两个 ...
- [C#] 记-TinyMapper使用
What is TinyMapper TinyMapper - a tiny and quick object mapper for .Net. The main advantage is perfo ...
- [原创]PostgreSQL Plus Advanced Server监控工具PEM(四)
四.PEM管理工具 1.编辑配置 选择进行管理的目标服务器,点击菜单Tools->Server Configuration->postgresql.conf管理服务器配置,可以看到我们经常 ...
- hdu 5166 Missing number
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5166 Missing number Description There is a permutatio ...
- [整理]Selector、shape详解
Selector.shape详解(一) Selector的结构描述: <?xml version="1.0" encoding="utf-8"?> ...
- Objective - C中属性和点语法的使用
一.属性 属性是Objective—C 2.0定义的语法,为实例变量提供了setter.getter方法的默认实现能在一定程度上简化程序代码,并且增强实例变量的访问安全性 ...