zoukankan      html  css  js  c++  java
  • 全国软件专业人才开发与设计赛题之中等题“银行卡验证”

    版权声明:版权归作者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 }
  • 相关阅读:
    [To be translated] Nova:libvirt image 的生命周期
    Neutron 理解(5):Neutron 是如何向 Nova 虚机分配固定IP地址的 (How Neutron Allocates Fixed IPs to Nova Instance)
    Cinder 调试
    SSH 无密码访问其它机器 和 Windows 上 putty 无密码访问 Linux 机器
    Hadoop 数据库
    Hadoop 分布式文件系统
    C++ 在继承中虚函数、纯虚函数、普通函数,三者的区别
    Google Scholar 论文参考文献的自动生成
    Linux shell ${}简单用法
    C/C++ 获取目录下的文件列表信息
  • 原文地址:https://www.cnblogs.com/weisteve/p/1804910.html
Copyright © 2011-2022 走看看