La différence entre le bon code et mauvais code est bon que le code peut utiliser moins de temps, moins de mémoire, et les codes médiocres font la même chose. Mais personnellement, je me sens mieux après être sorti du matériel, d'écrire du code mauvais, et le code pour le résultat de l'influence croissante de la petite, ce qui signifie qu'il est bon code (digression). Le titre du programme est écrit dans la première fois en Pixel AC, ha ha ha aucune raison de ne pas l'enregistrer.
Description de la réserve, compte tenu de deux plastiques A et B, les trois derniers chiffres B ^ A déterminés résultat et renvoie une chaîne. Direct aura des problèmes avec la fonction Pow, je ne l'ai pas expérimenté. sujet similaire de LeetCode est la chaîne de caractères est multiplié. Mon code Notes est également écrit en détail. Direct optimiste à ce sujet.
publique classe la principale { publique statiques vides main (String [] args) { System.out.println (tailOfPower ( 2,3 )); } // Description du problème: des nombres entiers donné , et de mise en forme a b, a ^ b est obtenu après trois, retourné comme une chaîne @ problèmes idée: Supposons a * b = c, puis les trois derniers bits de c et seulement trois derniers et les trois derniers corrélation b, et la multiplication calcul peuvent être utilisés pour calculer décrit comme suit: // // hypothèse 135 * 246, comme les résultats obtenus après trois h, i, j, l'expression opérationnelle suivante // // 135 // * 246 // ------- // abc // EF // G // ------- // HIJ // // peuvent être tirées j = c = les bits 5 * 6 = 30, à savoir 0, et le binaire dix, en 3 @ I = bits B + F + Carry = 3 * 6 + 4 * 5 + 3 = le bit 41, à savoir 1, et à une centaine de report, en 4 // H = a + E + G + dix bits de report = 6 + 1 * 4 * 3 * 2 + 5 + 4 = 32, à savoir 2 // obtenir les trois 210. finale publique statique chaîne tailOfPower ( int a, int B) { // les trois derniers un est stocké, est reçu par le tableau d'entiers, dans lequel 0 est l'indice de cent, l' indice de dix bits 1, l' indice 2 bits int [] = arrTail nouveau nouvel int [3. ]; // tableau d'entiers d' un premier enregistrement centaines lieu arrTail [0] = (a / 100) 10% ; // deuxième tableau d'entiers stockés dizaines arrTail [1.] = (a / 10) 10% ; // troisième tableau d'entiers de chiffres mémorisé arrTail [2] = a% 10; // premier temps est multipliée fois A A, de sorte que l'entrée est trois A int [] = ENTREE arrTail; // temps total du cycle b-1, parce que la première A * A est calculé de telle sorte qu'un total de fois B pour ( int i = 0; i. <1-B; I ++ ) { // définition de la sortie des trois chiffres int [] = sortie new new int [3. ]; // définition de bits dix pour transporter int JWG = 0 ; // calcul de c (comme indiqué précédemment dans l' équation) int numG = INPUT [2] * arrTail [2 ]; // si c est supérieur à 0 report calculé IF (numG> 10 ) { JWG = numG / 10 ; } //C est mémorisée bit de bits de sortie Sortie [2] = 10% numG ; // trop paresseux pour écrire, des dizaines de Calculer pour cent report int la JWS = 0 ; int [. 1] nums = ENTREE * arrTail [ 2] + INPUT [2] * arrTail [1] +. GTM, IF (nums> 10 ) { JWS = nums / 10 ; } sortie [ 1] = 10% nums. ; // calculer le chiffre des centaines, n'est pas calculé le report ici int NUMB = INPUT [0] * arrTail [2] ENTREE + * arrTail + INPUT [2] * arrTail [0] + [1]. [1]. la JWS; sortie [ 0] = 10% NUMB ; // code de débogage, ignorer> _ < //for (int = 0 I1; I1 <output.length; I1 ++) { // de System.out.print (Output [I1]); // } // System.out.println (); // le calcule trois sauvegarde chiffres, qui seront les trois chiffres suivants en entrée un et les trois derniers sont calculés iNPUT = sortie; } // rédigera un tableau de chaînes, après son retour string = « » + l'entrée [ 0] + entrée + INPUT [2 [1.] ]; rendement S; } }
L'algorithme finalement obtenir 100%.