全国软件专业人才开发与设计赛题之中等题“银行卡验证”

本文主要是介绍全国软件专业人才开发与设计赛题之中等题“银行卡验证”,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

版权声明:版权归作者WeiSteven所有,转载请注明!

不是所有的银行卡都是有效地,它是遵循一定的规律的。

对于一个卡号,验证其证伪可以采用:

奇数位数字相加求和

偶数位每位乘以2,如果超过10,则减9作为此位数字,然后求偶数位和

 

奇数位和加上偶数位和应该是10的倍数。

如果不满足上述条件,则此银行卡号是非法的。

请编写程序,判断给定的银行卡号是否合法

 

参考答案:

代码
 1  #include  < stdio.h >
 2  #include  < string .h >
 3  int  main()
 4  {
 5       // freopen("2_3.txt","r",stdin);
 6       char  scard[ 100 ]; // 读取卡号数据
 7       int  sumOdd = 0 ;
 8       int  sumEven = 0 ;
 9      printf( " 输入卡号:\n " );
10       while (scanf( " %s " ,scard) != EOF)
11      {
12           // 初始化需要用的变量
13          sumOdd = 0 ;
14          sumEven = 0 ;
15           int  lenString = strlen(scard);
16           // 逆序进行偶奇数求和
17           for ( int  i = lenString - 1 ;i >= 0 ;i -- )
18          {
19               if ((lenString - i) % 2 == 1 )
20              {
21                  sumOdd += scard[i] - ' 0 ' ;
22              }
23               else
24              {
25                   int  stemp = (scard[i] - ' 0 ' ) << 1 ; // 偶数是*2 判断大小
26                  sumEven += (stemp);
27                   if (stemp >= 10 )
28                      sumEven -= ( 9 );
29              }
30          }
31           if ((sumOdd + sumEven) % 10 == 0 )
32              printf( " 成功\n " );
33           else
34          {
35              printf( " 失败\n " );
36          }
37          printf( " 输入卡号:\n " );
38      }
39       return   1 ;
40  }

 

 

 

这篇关于全国软件专业人才开发与设计赛题之中等题“银行卡验证”的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/678577

相关文章

Linux内核参数配置与验证详细指南

《Linux内核参数配置与验证详细指南》在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要,本文主要来聊聊如何配置与验证这些Linux内核参数,希望对大家有一定的帮助... 目录1. 引言2. 内核参数的作用3. 如何设置内核参数3.1 临时设置(重启失效)3.2 永久设置(重启仍生效

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

opencv图像处理之指纹验证的实现

《opencv图像处理之指纹验证的实现》本文主要介绍了opencv图像处理之指纹验证的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、简介二、具体案例实现1. 图像显示函数2. 指纹验证函数3. 主函数4、运行结果三、总结一、

利用Python开发Markdown表格结构转换为Excel工具

《利用Python开发Markdown表格结构转换为Excel工具》在数据管理和文档编写过程中,我们经常使用Markdown来记录表格数据,但它没有Excel使用方便,所以本文将使用Python编写一... 目录1.完整代码2. 项目概述3. 代码解析3.1 依赖库3.2 GUI 设计3.3 解析 Mark