Guangdong Development Bank pour recruter centre de R & D au printemps 2020 des problèmes de programmation Java entier multiplié

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%.

Je suppose que tu aimes

Origine www.cnblogs.com/PixelShine/p/12580615.html
conseillé
Classement