Supongamos que el número formado por los D bits más bajos de un número A es ad. Si ad se corta y se mueve antes del bit más alto de A, se forma un nuevo número B. ¿Cuántas veces B es el tamaño de A? Por ejemplo, si cortas los dos dígitos más bajos de 12345, 45, y los colocas delante de 123, obtendrás 45123, que es aproximadamente 3,66 veces de 12345.
Formato de entrada:
La entrada proporciona un entero positivo A (≤109) y el número de dígitos para truncar D en una línea. La pregunta asegura que D no exceda el número total de dígitos en A.
Formato de salida:
Calcule cuántas veces B es A y genere 2 decimales.
Ejemplo de entrada 1:
12345 2
Muestra de salida 1:
3.66
Ejemplo de entrada 2:
12345 5
Muestra de salida 2:
1.00
Ideas para resolver problemas:
Hay muchos métodos, siempre que la respuesta sea correcta.
#include <stdio.h>
#include <math.h>
int main(int argc, const char *argv[]) {
int A, D, cut, len, mul, tmp, a1, a2, B;
if ( scanf("%d %d", &A, &D)==EOF ) printf("error\n");
tmp = A; len = 0;
while ( tmp ) {
tmp /= 10;
++len;
}
cut = pow(10, D);
mul = pow(10, len - D);
a1 = A / cut;
a2 = A % cut;
B = a2 * mul + a1;
printf("%.2f\n", (double)B/A);
return 0;
}