La diferencia entre el bien y el mal código de código es que el código bueno puede utilizar menos tiempo, menos memoria, y los códigos mediocres hacer lo mismo. Pero personalmente me siento mejor después de salir del hardware, para escribir código malo, y el código para el resultado de la creciente influencia de los pequeños, es decir, no es bueno Código (digresión). El título del programa se escribe en el primer tiempo de píxeles en AC, ja, ja, ja, no hay razón para grabarlo.
Descripción tema, dada dos Una plástico y B, los tres últimos dígitos B ^ A determinaron resultado y devuelve una cadena. Directa tendrá algunos problemas con la función Pow, no he experimentado. Similar LeetCode objeto es la cadena de caracteres se multiplica. Mi código Notes también está escrito con gran detalle. Dirigir optimista al respecto.
público de clase el principal { públicas estáticas void main (String [] args) { System.out.println (tailOfPower ( 2,3 )); } // Descripción del problema: dado enteros y dar forma a b, a ^ b se obtiene después de tres, regresaron como una cadena @ problemas idea: Supongamos que a * b = c, entonces los últimos tres bits de c y sólo tres últimos y los últimos tres correlación B, y la multiplicación de cálculo se pueden utilizar para calcular se describe como sigue: // // hipótesis 135 * 246, como los resultados obtenidos después de tres h, i, j, la siguiente expresión operacional // // 135 // * 246 // ------- // abc // EF // G // ------- // HIJ // // se pueden extraer j = c = bits de 5 * 6 = 30, es decir, 0, y el binario diez, en 3 @ I = Bits de B + F + llevar = 3 * 6 + 4 * 5 + 3 = bit 41, es decir, 1, y a un centenar de acarreo, en 4 // H = a + e + G + carry diez = bits de 1 * 6 + 4 * 3 + 2 * 5 + 4 = 32, es decir, 2 // obtener los tres 210. definitiva pública estática cadena tailOfPower ( int a, int B) { // los tres últimos a se almacena, es recibida por la matriz de enteros, en la que 0 es el índice de ciento, índice de bits de diez 1, índice 2 bits int [] = arrTail nuevo nuevo int [3. ]; // matriz de enteros una primera ahorrar cientos lugar arrTail [0] = (a / 100) 10% ; // segunda matriz de enteros almacenado decenas arrTail [1.] = (a / 10) 10% ; // tercera matriz de enteros dígitos almacenado arrTail [2] = a% 10; // primera vez se multiplica por A A, de modo que la entrada es de tres A int [] = ENTRADA arrTail; // tiempos de ciclo totales b-1, debido a que la primera A * A se calcula de manera que un total de B veces para ( int i = 0;. I <1-B; I ++ ) { // definición de la salida de la de tres dígitos int [] = salida nuevo nuevo int [3. ]; // definición de bits diez para llevar int GMT = 0 ; // c computación (como se muestra anteriormente en la ecuación) int numG = INPUT [2] * arrTail [2 ]; // si c es mayor que 0 carry calculado IF (numG> 10 ) { GMT = numG / 10 ; } //C se almacena bit de salida de bits de salida [2] = 10% numG ; // demasiado vago para escribir, decenas calcular a ciento carry int la JWS = 0 ; int [. 1] nums = entrada * arrTail [ 2] + INPUT [2] * arrTail [1] +. GTC; IF (nums> 10 ) { el JWS = nums / 10 ; } de salida [ 1] = 10% nums. ; // calcular el dígito de las centenas, el arrastre no se calcula aquí int NUMB = INPUT [0] * arrTail [2] ENTRADA + * arrTail + INPUT [2] * arrTail [0] + [1]. [1]. la JWS; de salida [ 0] = 10% NUMB ; // código de depuración, ignorar> _ < //for (int = 0 I1; I1 <output.length; I1 ++) { // de System.out.print (Output [I1]); // } // System.out.println (); // la calcula tres Guardar dígitos, que será el próximo tres dígitos como entrada un y los tres últimos son calculados de entrada = salida; } // va a escribir una matriz de cadenas, después de volver cadena s = "" + de entrada [ 0] + de entrada + INPUT [2 [1.] ]; retorno S; } }
El algoritmo finalmente obtener el 100%.