Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- int main(void)
- {
- //Declaro las variables a usar
- unsigned long long L;
- signed short l;
- unsigned long long i;
- unsigned long long R;
- unsigned long long pot10;
- unsigned long long copiaI;
- unsigned long long vectorColas[1000000];
- unsigned short j,k;
- unsigned short auxiliar;
- unsigned short longDigitos;
- unsigned short vectorDigitos[20];
- unsigned short contColasNC;
- //Ingreso el rango de numeros que voy a verificar
- scanf("%llu%llu",&L,&R);
- contColasNC = 0;
- //Repito el proceso la cantidad de veces necesarias
- for (i = L ; i <= R ; i++)
- {
- copiaI = i;
- longDigitos = 0;
- // Cuento la cantidad de digitos e ingreso los digitos del numero al vector
- while (copiaI != 0)
- {
- if (copiaI % 10 != 0)
- {
- vectorDigitos[longDigitos] = copiaI % 10;
- longDigitos++;
- }
- copiaI = copiaI / 10;
- }
- //Ordeno los digitos dentro del vector
- for (j = 0 ; j < longDigitos - 1 ; j++)
- {
- for ( k = 1 ; k < longDigitos ; k++)
- {
- if (vectorDigitos[j] > vectorDigitos[k])
- {
- auxiliar = vectorDigitos[j];
- vectorDigitos[j] = vectorDigitos[k];
- vectorDigitos[k] = auxiliar;
- }
- }
- }
- copiaI = 0;
- pot10 = 1;
- //Rehago el numero sin los 0
- for (l = longDigitos - 1 ; l >= 0; l--)
- {
- copiaI = copiaI + vectorDigitos[l] * pot10;
- pot10 = pot10 * 10;
- }
- //printf("%llu ",copiaI);
- int noEsta = 1;
- j = 0;
- while (noEsta && (j < contColasNC)) {
- if (vectorColas[j] == copiaI) {
- noEsta = 0;
- }
- else {
- j++;
- }
- }
- if (noEsta) {
- vectorColas[contColasNC] = copiaI;
- contColasNC++;
- }
- }
- printf("%u",contColasNC);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment