ejercicios + soluciones en java

Iniciado por .rn3w., 26 Abril 2011, 00:53 AM

0 Miembros y 1 Visitante están viendo este tema.

.rn3w.


Este tema es para todos los que estan interesados en programar en JAVA
la finalidad es que compartamos ideas, ejercicios entre otros

.rn3w.

#1
Dada una cadena y una subCadena
verificar si la subCadena se encuentra en la Cadena
ejemplo:
entrada: cadena       =hola                     entrada: cadena        =hola
            subCadena  = hol                                   subCadena  = nuj
salida: verdadero                                    salida: falso

public boolean existe(String palabra, String sub){
       boolean res=false;
       int tamPalabra=palabra.length();
       int tamSub= sub.length();
       int i=0;
       while(i<tamPalabra && tamSub<=tamPalabra){
           String auxPal=palabra.substring(i,tamSub);
       if(auxPal.equals(sub)){
           res=true;
        }
       else{
           tamSub++;
       }
       i++;
   }
       return res;
   }


:rolleyes: :laugh: ;-) :silbar: :silbar: :laugh: ;-)


angelxxi

Muy buenajavascript:void(0); aportacion nadamas que si quiero en contrar en la palabra "hola" la subcadena "la" pone false lo unico que hay que agregar es en el while el signo igual
tamSub<=tamPalabra es una pequeñes

.rn3w.

#4
Dado un numero entero positivo, se pide eliminar las segundas ocurrencias repetidas de digitos
ejemplo
entrada= 2356342
salida   = 56342

.rn3w.


  • bueno mandare un problema cada 2 o 3 dias y luego publicare la respuesta

    ejercicio 1: hacer la siguiente serie
            entrada: 22
            salida: 22,11,34,17,52 , 26, 13,40,20,10,5,16,8,4,2,1

.rn3w.

solucion 
public ArrayList<Integer> secuencial(int n){
    ArrayList<Integer> res=new ArrayList<Integer>();
   
   
    while(n%2==0 && n>1){
        res.add(n);
        n=n/2;
       
       
        while(n%2==0 && n>1){
            res.add(n);
           n=n/2;

        }
        res.add(n);
       
       
        if(n%2!=0 && n>1){
            n=(3*n)+1;
             
        }
    }
    return res;
    }

.rn3w.

#7
Ordenar la siguiente secuencia
El problema consiste en que los numeros mayores de la secuencia se encuentren en los ambos estremos
entrada: {4, 5, 6}            entrada: {1,1,1,1,2,1,2}
salida:{5,4,6}                  salida:    {1,1,1,1,1,2,2}

sino me explique muy bien preguntan porfa

S O L U C I O N
    public int [] ordenarSecuencia(int [] secuencia){
    int tam     = secuencia.length;
    int avance  =tam/2;
    int mayor, menor=0;
        if(tam%2==0){
    for(int i=0; i< avance; i++){
    for(int j=i+1; j< avance; j++){
        if(secuencia[i]<secuencia[j]){
        menor   =   secuencia[i];
        mayor   =   secuencia[j];
        secuencia[i]=mayor;
        secuencia[j]=menor;
    }
}
}
for(int i=tam-1; i>= avance; i--){
    for(int j=i-1; j>= avance; j--){
        if(secuencia[i]<secuencia[j]){
        menor   =   secuencia[i];
        mayor   =   secuencia[j];
        secuencia[i]=mayor;
        secuencia[j]=menor;
    }
}
}
   
    }
    else{
        for(int i=0; i<= avance; i++){
    for(int j=i+1; j<= avance; j++){
        if(secuencia[i]<secuencia[j]){
        menor   =   secuencia[i];
        mayor   =   secuencia[j];
        secuencia[i]=mayor;
        secuencia[j]=menor;
    }
}
}
for(int i=tam-1; i>= avance; i--){
    for(int j=i-1; j>= avance; j--){
        if(secuencia[i]<secuencia[j]){
        menor   =   secuencia[i];
        mayor   =   secuencia[j];
        secuencia[i]=mayor;
        secuencia[j]=menor;
    }
}
}
    }
    return secuencia;
    }

.rn3w.

#8
Cuantos numeros pares ocupan posiciones impares
  Ejemplo:
   Entrada: 25472                                   Entrada:85876122
   Salida  :  3                                          Salida:4

public int invertirNumeros(int numerito){
   int res=0;
   int aux=0;
   while(numerito>=10){
       aux=numerito%10;
       res= res*10+aux;
       numerito=numerito/10;
   }
   res=res*10+numerito;
       return res ;
   }

public int posiciones(int numero){
int res=0;
int copiaInvertido=invertirNumeros(numero);
while(copiaInvertido>99){

if((copiaInvertido%10)%2==0){
res++;
}

copiaInvertido=copiaInvertido/100;
}
if(copiaInvertido%2==0){
res=res+1;
}
return res;

}

.rn3w.

Dada una secuencia de elementos se pide encontrar el conjunto clausura
Ejemplo

Entrada: {1,5,6}
salida   : {{},{1},{5},{6},{1,5},{1,6},{5,6},{1,5,6}}