pat basic 1101 ¿Cuántas veces es B?

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;
}

Supongo que te gusta

Origin blog.csdn.net/herbertyellow/article/details/126683435
Recomendado
Clasificación