stock GerarCPF()
{
new cpf[100];
new rand[9];
new digito[12];
new calculo[4];
new rand_number[9][1] = { {1},{2},{3},{4},{5},{6},{7},{8},{9} };
for(new i; i < 9; ++i)
{
rand[i] = rand_number[random(sizeof rand_number)][0];
}
digito[1] = rand[0] * 10;
digito[2] = rand[1] * 9;
digito[3] = rand[2] * 8;
digito[4] = rand[3] * 7;
digito[5] = rand[4] * 6;
digito[6] = rand[5] * 5;
digito[7] = rand[6] * 4;
digito[8] = rand[7] * 3;
digito[9] = rand[8] * 2;
calculo[0] = digito[1] + digito[2] + digito[3] + digito[4] + digito[5] + digito[6] + digito[7] + digito[8] + digito[9];
digito[10] = calculo[0] % 11;
calculo[1] = 11 - digito[10];
if(digito[10] < 2)
{
calculo[1] = 0;
}
digito[1] = rand[0] * 11;
digito[2] = rand[1] * 10;
digito[3] = rand[2] * 9;
digito[4] = rand[3] * 8;
digito[5] = rand[4] * 7;
digito[6] = rand[5] * 6;
digito[7] = rand[6] * 5;
digito[8] = rand[7] * 4;
digito[9] = rand[8] * 3;
digito[10] = calculo[1] * 2;
calculo[2] = digito[1] + digito[2] + digito[3] + digito[4] + digito[5] + digito[6] + digito[7] + digito[8] + digito[9] + digito[10];
digito[11] = calculo[2] % 11;
calculo[3] = 11 - digito[11];
if(digito[11] < 2)
{
calculo[3] = 0;
}
format(cpf, 50, "%d %d %d %d %d %d %d %d %d %d %d", rand[0], rand[1], rand[2], rand[3], rand[4], rand[5], rand[6], rand[7], rand[8], calculo[1], calculo[3]);
print(cpf);
return strval(cpf);
}
stock GerarCPF()
{
new D[11];
for(new i = 0; i < 11; i++)
{
D[i]= random(10);
}
return D[0]+D[1]*10+D[2]*100+D[3]*1000+D[4]*10000;// continua atй o "+D[10]*10 000 000 000"
}
|
Este seu estб muito mal otimizado, e muitos codes desnecessбrios, olha como eu faria:
PHP код:
|
generateCPF()
{
new str[20];
format(str, sizeof(str), "%03d.%03d.%03d-%02d", random(1000), random(1000), random(1000), random(100));
return str;
}
new cpf[16],
cpfNumbers[11],
cpfCalculation[10],
cpfSum;
for(new i=0, k; i<9; i++)
{
cpfNumbers[i] = random(9);
k = 10-i;
if(k < 2) k = 2;
cpfCalculation[i] = cpfNumbers[i]*k;
}
for(new i=0; i<9; i++)
{
cpfSum += cpfCalculation[i];
}
cpfSum %= 11;
if(cpfSum < 2)
cpfNumbers[9] = 0;
else
cpfNumbers[9] = 11-cpfSum;
cpfSum = 0;
for(new i=0, k; i<10; i++)
{
k = 11-i;
if(k < 2) k = 2;
cpfCalculation[i] = cpfNumbers[i]*k;
}
for(new i=0; i<10; i++)
{
cpfSum += cpfCalculation[i];
}
cpfSum %= 11;
if(cpfSum < 2)
cpfNumbers[10] = 0;
else
cpfNumbers[10] = 11-cpfSum;
format(cpf, sizeof(cpf), "%d%d%d.%d%d%d.%d%d%d-%d%d", cpfNumbers[0],
cpfNumbers[1],
cpfNumbers[2],
cpfNumbers[3],
cpfNumbers[4],
cpfNumbers[5],
cpfNumbers[6],
cpfNumbers[7],
cpfNumbers[8],
cpfNumbers[9],
cpfNumbers[10]);
print(cpf);
|
Vocк terб que nesse caso usar uma string para retornar o CPF, pois caso o primeiro digito seja um zero ele irб ser apagado. cуdigo:
PHP код:
|