zoukankan      html  css  js  c++  java
  • Tyvj P1032 Begin2 Unit1 身份验证

    描述 Description  
     

    身份证的验证码是这样算的:
    比如一个人前17位是这样子的:
    35010219801221109
    如何算它的验证码?
    K=∑(A[i]*W[i])(i=2~18)
    也就是说K=(A[2]*W[2])+(A[3]*W[3])+...+(A[18]*W[18])
    A[i]表示的是从右数到左第i个数(包括验证码在内)
    如前面的例子中,最后三位1、0、9,i值分别为4、3、2
    A[i]就是编号为i的那个数的字符。如例子中A[2]=9,A[3]=0.
    那么W[i]又是什么呢?如图所示
    ::点击图片在新窗口中打开::
    好了,现在就可以算它的K值了。把K除以11所得的余数与下面的表格对照即可知道它的验证码。
    ::点击图片在新窗口中打开::

    输入格式 Input Format
     
      输入数据包含十七位数,即二代身份证号码的前17位数。
     
     
     
         
      输出格式 Output Format  
      二代身份证号码的第18位数,即验证码。

     

    样例输入 Sample Input

    35010219801221109

    样例输出 Sample Output

    7

     
     

    10分钟ac,两次提交,第一次忘定义变量l了。。学校服务器fp居然不能编译,害我把测评机当编译器用...

    program b1032;
     const
      w:array[2..18]of integer=(2,4,8,5,10,9,7,3,6,1,2,4,8,5,10,9,7);
      ky:array[0..10]of char=('1','0','X','9','8','7','6','5','4','3','2');
     var
      a:array[1..18]of integer;
      i,k,y,l:longint;
      s:string;
     begin
      k:=0;
      readln(s);
      for i := 2 to 18 do
       begin
        a[i]:=ord(s[19-i])-48;
        k:=a[i]*w[i]+k;
       end;
      l:=k mod 11;
      write(ky[l]);
     end.
    
    
  • 相关阅读:
    Vue中发送HTTP请求
    Vuex
    vue-cli
    Vue基础2
    Vue基础1
    webpack_vue
    前言:数据库典型架构实践
    MySQL数据库优化
    解析 PHP 中 session 的实现原理以及大网站应用应该注意的问题
    Yii2.0 下的 load() 方法的使用
  • 原文地址:https://www.cnblogs.com/yachen/p/1891245.html
Copyright © 2011-2022 走看看