lunes, 23 de mayo de 2011

Teoría Semana 05: Remplazo de un elemento de un arreglo por otro

Problema 01
Implemente un método que remplace el último número par por el primer impar

Ejemplo
Inicio
(Remplazante)                                                                  (Remplazado)
21     17     27     29     47     19     66     78
0              1              2              3              4              5              6              7
Fin
21     17     27     29     47     19     66     21
0              1              2              3              4              5              6              7

Solución
n[ pos_remplazado] = num_remplazante
n[7 ] =21

public int metodo(){
            //pos_remplazado
            int pos_remplazado;
            for(int i = x.length-1;  i>=0 ;i--){
                        if(n[i]%2==0){
                                   pos_remplazado = i;
                                   break;
}         
}         
            //num_remplzante
int num_remplazante;
            for(int i = 0;  i<x.length ; i++){
                        if(n[i]%2!=0){
                                   num_remplazante = n[i];
                                   break;
}         
}
            //remplazo
n[ pos_remplazado] = num_remplazante;
}

Problema 02
Implemente un método que remplace el segundo número impar por el  penúltimo número cuya cifra sumen 8

Ejemplo
Inicio
(Remplazante)                                                                  (Remplazado)
18     17     27     29     17     19     26     15
0              1              2              3              4              5              6              7
Fin
18     17     17     29     17     19     26     15
0              1              2              3              4              5              6              7


public int metodo(){
            //pos_remplazado: segundo impar
            int pos_remplazado, cont1=0;       
            for(int i = 0;  i<x.length ; i++){
                        if(n[i]%2!=0 && ++cont1==2){
                                   pos_remplazado = i;
                                   break;
}         
}         
            //num_remplzante: penúltimo número cuyas cifras sume 8
int num_remplazante, cont2=0;
            for(int i = x.length-1;  i>=0 ;i--){
                        if(  (n[i]/10 + n[i]%10 ==8 ) && ++cont ==2){
                                   num_remplazante = n[i];
                                   break;
}         
}
            //remplazo
n[ pos_remplazado] = num_remplazante;
}

No hay comentarios:

Publicar un comentario