Respuestas
Descripción del problema:
Palabra loca
Descripción
Dado cierto número, convertirlo utilizando la palabra loca según las siguientes reglas:
Leyendo las letras de la palabra de izquierda a dereclla:
- Si es una vocal sumar 100
- Si es un consonante de la "b" a la "m" dividir entre dos y soicitar su parte entera.
- Si es una constante de la "n" a la "z" excepto x, restar 10
- Si es una "x" ignorar el resto de la frase
(Adjunte la descripcion para que los navegadores enlacen a la respuesta)
Respuesta:
#include <iostream>
#include <string>
using namespace std;
int Ascci(char letra){
int valorAscci = letra;
return valorAscci;
}
int main(){
string palabra;
int letra, cantidad;
cantidad = 0;
cout<<"Escriba una palabra: ";
cin>>palabra;
//Letras minusculas 97-122
//Vocales 97,101,105,111,117
//b-m 98-109
//n-z 110-122
//x 120
for(int i = 0; i < palabra.size();i++){
letra = Ascci(palabra[i]);
if((letra == 97) || (letra ==101) || (letra == 105) || (letra == 111) || (letra == 117)){
cantidad += 100;
}else{
if(letra == 120){
i = palabra.size();
}else{
if(letra >= 98 && letra <=109){
cantidad = cantidad/2;
}else{
cantidad -= 10;
}
}
}
}
cout<<"Total: "<<cantidad;
}
Explicación:
Primero recibes la palabra y evaluas letra por letra, con la funcion Ascci que ayuda a obtener el código ascci de cada letra, posteriormente se evalua que operacion corresponde según la letra actual.