-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexercicio_06.cpp
85 lines (63 loc) · 1.91 KB
/
exercicio_06.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#include <iostream>
using namespace std;
int main() {
int digito_cpf;
int primeiro_digito_validacao;
int segundo_digito_validacao;
int soma_passo_1;
int resto_passo_1;
int soma_passo_3;
int resto_passo_3;
bool cpf_eh_valido;
int contador;
soma_passo_1 = 0;
soma_passo_3 = 0;
contador = 0;
cout << "Informe os 11 digitos do CPF: ";
while (contador < 11) {
cin >> digito_cpf;
if (digito_cpf < 0 || digito_cpf > 9) {
cout << "O digito informado eh invalido!" << endl;
return 1;
}
if (contador == 9) {
primeiro_digito_validacao = digito_cpf;
}
if (contador == 10) {
segundo_digito_validacao = digito_cpf;
}
if (10 - contador >= 2) {
soma_passo_1 = soma_passo_1 + (10 - contador) * digito_cpf;
}
if (11 - contador >= 2) {
soma_passo_3 = soma_passo_3 + (11 - contador) * digito_cpf;
}
contador = contador + 1;
}
resto_passo_1 = soma_passo_1 % 11;
if (resto_passo_1 < 2) {
cpf_eh_valido = primeiro_digito_validacao == 0;
primeiro_digito_validacao = 0;
} else {
cpf_eh_valido = primeiro_digito_validacao == 11 - resto_passo_1;
primeiro_digito_validacao = 11 - resto_passo_1;
}
resto_passo_3 = soma_passo_3 % 11;
if (resto_passo_3 < 2) {
cpf_eh_valido = cpf_eh_valido && (segundo_digito_validacao == 0);
segundo_digito_validacao = 0;
} else {
cpf_eh_valido = cpf_eh_valido && (segundo_digito_validacao == 11 - resto_passo_3);
segundo_digito_validacao = 11 - resto_passo_3;
}
cout << "A soma obtida no Passo 1 eh " << soma_passo_1 << endl;
cout << "O primeiro digito de validacao eh " << primeiro_digito_validacao << endl;
cout << "A soma obtida no Passo 3 eh " << soma_passo_3 << endl;
cout << "O segundo digito de validacao eh " << segundo_digito_validacao << endl;
if (cpf_eh_valido) {
cout << "S" << endl;
} else {
cout << "N" << endl;
}
return 0;
}