• JavaPTA练习题 6-2 数字校验


    本题要求实现一个函数,校验一个13位正整数号码是否正确。13位号码的最后一位是校验码。通过对前12位数字的加减乘除运算得到一个一位数字,如果和第13位数字相同,表示正确的号码。

    1、从最右边第12位开始间隔一位个位数相加,然后乘7。

    2、剩下的其余数字相加,然后乘2 。

    3、再把两者加起来,除以10取余数

    4、和第13位相校验,匹配就正确,不匹配则错误。

    裁判测试程序样例:

    1. import java.util.Scanner;
    2. public class Main {
    3. /* 请在这里填写答案 */
    4. public static void main(String[] args) {
    5. Scanner in = new Scanner(System.in);
    6. long code = in.nextLong();
    7. boolean checksumResult = checksum(code);
    8. if (checksumResult)
    9. System.out.println("The checksum of "+code+" is "+ "correct");
    10. else
    11. System.out.println("The checksum of "+code+" is "+ "incorrect");
    12. }
    13. }

    输入样例1:

    在这里给出一组输入。例如:

    1234567890126
    

    输出样例1:

    在这里给出相应的输出。例如:

    The checksum of 1234567890126 is correct
    

    输入样例2:

    在这里给出一组输入。例如:

    2345677654329
    

    输出样例2:

    在这里给出相应的输出。例如:

    The checksum of 2345677654329 is incorrect
    

    ---------------------------------------------------------------------------------------------------------------------------------

    具体代码如下:

    1. public static boolean checksum(long data)
    2. {
    3. int i,j;
    4. long sum=0,sum1=0,sum2=0,n=10,m=100;
    5. for(i=1;i<=6;i++)
    6. {
    7. sum1=sum1+data/n%10;
    8. n=n*100;
    9. }
    10. sum1=sum1*7;
    11. for(j=1;j<=6;j++)
    12. {
    13. sum2=sum2+data/m%10;
    14. m=m*100;
    15. }
    16. sum2=sum2*2;
    17. sum=(sum1+sum2)%10;
    18. if(sum==data%10)
    19. return true;
    20. else
    21. return false;
    22. }

  • 相关阅读:
    Web开发中会话跟踪的隐藏表单字段(隐藏input)方法
    11.循环神经网络RNN
    【Redis】Redis锁详解
    多线程服务器适用场合
    单片机FLASH下载算法的制作
    spring异步线程任务Async,自定义配置线程池,Java
    搭建git私人仓库
    [pycgns]pycgns安装后测试代码
    计算机毕业设计ssm大学生课外学习系统m65wl系统+程序+源码+lw+远程部署
    UNet - 数据加载 Dataset
  • 原文地址:https://blog.csdn.net/Chen298/article/details/133965576