标签 IMEI 下的文章

#include <stdio.h>
#include <string.h>

//867897040644636
#define IMEI "86789704064463"

int getIMEICheckDigit(char *imei)
{
    int i, sum1 = 0, sum2 = 0, temp, result = 0;

    for (i = 0; i < strlen(imei); i++) {
        if (i % 2 == 0) {
            sum1 += imei[i] - '0';
        } else {
            temp = (imei[i] - '0') * 2;
            sum2 += temp;
            if (temp >= 10) {
                sum2 -= 9;
            }
        }
    }
    temp = (sum1 + sum2) % 10;
    if (temp != 0) {
        result = 10 - temp;
    }

    return result;
}

int main(int argc, char *agrv[])
{
    printf("IMEI %s check digit is %d\n", IMEI, getIMEICheckDigit(IMEI));

    return 0;
}