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

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

版权声明:版权归作者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

相关文章

一文详解Python如何开发游戏

《一文详解Python如何开发游戏》Python是一种非常流行的编程语言,也可以用来开发游戏模组,:本文主要介绍Python如何开发游戏的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、python简介二、Python 开发 2D 游戏的优劣势优势缺点三、Python 开发 3D

基于Python开发Windows自动更新控制工具

《基于Python开发Windows自动更新控制工具》在当今数字化时代,操作系统更新已成为计算机维护的重要组成部分,本文介绍一款基于Python和PyQt5的Windows自动更新控制工具,有需要的可... 目录设计原理与技术实现系统架构概述数学建模工具界面完整代码实现技术深度分析多层级控制理论服务层控制注

Java JDK Validation 注解解析与使用方法验证

《JavaJDKValidation注解解析与使用方法验证》JakartaValidation提供了一种声明式、标准化的方式来验证Java对象,与框架无关,可以方便地集成到各种Java应用中,... 目录核心概念1. 主要注解基本约束注解其他常用注解2. 核心接口使用方法1. 基本使用添加依赖 (Maven

Java中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例解析

《Java中的分布式系统开发基于Zookeeper与Dubbo的应用案例解析》本文将通过实际案例,带你走进基于Zookeeper与Dubbo的分布式系统开发,本文通过实例代码给大家介绍的非常详... 目录Java 中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例一、分布式系统中的挑战二

python库pydantic数据验证和设置管理库的用途

《python库pydantic数据验证和设置管理库的用途》pydantic是一个用于数据验证和设置管理的Python库,它主要利用Python类型注解来定义数据模型的结构和验证规则,本文给大家介绍p... 目录主要特点和用途:Field数值验证参数总结pydantic 是一个让你能够 confidentl

基于Go语言开发一个 IP 归属地查询接口工具

《基于Go语言开发一个IP归属地查询接口工具》在日常开发中,IP地址归属地查询是一个常见需求,本文将带大家使用Go语言快速开发一个IP归属地查询接口服务,有需要的小伙伴可以了解下... 目录功能目标技术栈项目结构核心代码(main.go)使用方法扩展功能总结在日常开发中,IP 地址归属地查询是一个常见需求:

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模