Dados dos numeros, a y b, donde siempre a <= b, contar cuantos 1's hay en una cuenta progresiva desde a hasta b (incluyendo a y b). Es decir si a = 5 y b = 11, la respuesta seria 3. Hay un uno en "10", y hay dos unos en "11".
El archivo de entrada (data.in) contendra un entero n, donde 0 < n < 1000, que indicara los casos de prueba siguientes. Las siguentes n lineas contendran dos enteros separados por un espacio indicando a y b respectivamente. La salida seran n lineas conteniendo el numero de unos que se aparecen en la cuenta de a hasta b.
Ejemplo
Entrada(data.in):
3
0 1
2 9
0 10
Salida(data.out):
1
0
2
Según yo ya tengo el código y funciona bien, pero el juez en linea me lo marca como incorrecto =( no se si me puedan ayudar a encontrar mi error por favor
Código:
#include <stdio.h> int main() { int a,b,i,div,cont=0,rep,j; FILE *in, *out; in = fopen("data.in", "r"); out = fopen("data.out", "w"); fscanf(in,"%d",&rep); for(j=0;j<rep;j++){ fscanf(in,"%d %d",&a,&b); for(i=a;i<=b;i++) { div=i; do{ if(div%10 == 1) cont++; div=div/10; if(div<=0) break; }while(1); } if(j!=rep) fprintf(out,"%d\n",cont); else fprintf(out,"%d",cont); cont=0; } fclose(in); fclose(out); return 0; }