18位身份证检验算法

public static char doVerify(String id)      
    {      
        char pszSrc[]=id.toCharArray();      
        int iS = 0;      
        int iW[]={7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};      
        char szVerCode[] = new char[]{'1','0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'};      
        int i;      
        for(i=0;i<17;i++)      
        {      
            iS += (int)(pszSrc[i]-'0') * iW[i];      
        }      
        int iY = iS%11;      
        return szVerCode[iY];      
    }    

你可能感兴趣的:(算法)