/* Faça uma função com protótipo int conta_digitos (int n, int d); que recebe inteiros n > 0 e 0 <= d <= 9 e devolve quantas vezes o dígito d ocorre em n. Escreva um programa que recebe inteiros positivos a < b e conta quantos números inteiros no intervalo [a,b] não têm dígitos repetidos. https://www.urionlinejudge.com.br/judge/en/problems/view/1285 */ #include #define TRUE 1 #define FALSE 0 int conta_digitos (int n, int d); int repete_digitos (int n); int main() { int a, b, /* intervalo de entrada */ n, /* percorre intervalo */ conta; /* conta quantos números não repetem */ scanf("%d%d", &a, &b); conta = 0; for (n = a; n <= b; n++) { if (!repete_digitos(n)) { conta++; } } printf("%d numeros em [%d,%d] nao repetem digitos\n", conta, a, b); return 0; } int repete_digitos (int n) { int d; for (d = 0; d <= 9; d++) { if (conta_digitos (n, d) > 1) { return TRUE; } } return FALSE; } int conta_digitos (int n, int d) { int conta = 0; while (n) { if (n % 10 == d) { conta++; } n /= 10; } return conta; }