Ejercicio C++, averiguar si un numero es multiplo de 11
Hola de nuevo amigos, para variar vuelvo a estar liado, y de que manera, en C++. Esta vez el ejercicio dice así:
[QUOTE]Diseña un programa C++ que determine si un número introducido por teclado es o no múltiplo de once mediante el siguiente algoritmo: Un numero es múltiplo de 11 cuando la suma de sus dígitos pares menos la suma de sus dígitos impares es a su vez múltiplo de 11 o es 0.[/QUOTE] Yo he hecho lo siguiente, pero no sé cómo hacer el cuerpo del algoritmo, es decir, que me sume los dígitos pares (que he llamado "par") y me sume los digitos impares (llamados "imp"): [QUOTE]int main() { // Zona de Declaración de Variables del Programa principal unsigned int num, par, imp, res; cout << "Introduzca un numero y descubra si es multiplo de once: "; cin >> num; cout << '\n' << endl; if ( num >= 11 ) { for ( num; res = par - imp; if ( res % 11 == 0 || res == 0 ) cout << "Su numero es multiplo de once." << '\n' << endl; else cout << "Su numero no es multiplo de once." << '\n' << endl; } else cout << "Su numero no es multiplo de once." << '\n' << endl; system("Pause"); // Hacer una pausa return 0; // Valor de retorno al S.O. }[/QUOTE] Bueno amigos, espero consejos, no pido la resolución del problema, simplemente que me orieten, o un ejemplo...l Gracias por vuestro tiempo. Ta luego!!! |
supongo que para sacar los digitos que tiene el nmero deberias hacer divisiones en base 10 y quedarte con el resto, para sacar unidades, decenas, centenas etc.
para comprobar si es par/impar basta con hacer el mod 2, si el resto es 0, par lo sumas por un lado, y si el resto no es 0, es impar y lo sumas por el otro. una vez tengas las sumas haces un mod 11 y si el resto es 0, es divisible y si no no. Lo qu eno entiendo es porque liar tanto un programa que se resolveria haciendo mod 11 del numero recibido y listo. |
saludos...
yo lo haria asi....no lo copies, intenta hacerlo tu y mejoralo, lo he hecho en un ratito y seguro que se puede mejorar bastante. Código PHP:
|
saludos...
otra forma de hallarlo que se me ocurre, es esta...con menos lineas de codigo. Código PHP:
|
Muchas gracias Coke por tu inestimable ayuda, gracias. La primera manera en que lo has hecho no la comprendo bien, creo que utilizas un array, no?, pero es que los acabo de dar ayer, y como que no los domino mucho...
La segunda manera si la entiendo perfectamente y es bien sencillo el ejercicio. No sé, o yo soy mu torpe y esto me cuesta, o es normal para los que empezamos en C++...pero hay ejercicios que no veas... Bueno, muchas gracias de nuevo, y hasta otra...;) |
si, es un array, he supuesto que todavia no habias dado vectores....los vectores se utilizan cuando no se sabe el espacio que vas a necesitar...cuando declaras un array tienes que poner el tamaño del mismo, ejemplo : int array[20];...mientras que en un vector no, ejemplo : std::vector<int> array;
aqui tienes el ejemplo con un vector... [PHP] #include<vector> using namespace std; int main() { unsigned int num, par, imp, resultado; int pa, im; cout << "Introduzca un numero y descubra si es multiplo de once: "; cin >> num; cout << '\n' << endl; if(num >= 11) { vector<int> hj; int i = 0; while(num != 0) { int fg = num % 10; num = num / 10; hj.push_back(fg); i++; } im = i; imp = 0; while( im > 0) { int gh = hj[im - 1]; imp = imp + gh; im = im - 2; } pa = i; par = 0; while( pa > 1) { int gh = hj[pa - 2]; par = par + gh; pa = pa - 2; } resultado = imp - par; } if(resultado == 11 || resultado == 0) { cout <<"El numero es multiplo de 11\n" <<endl; } else { cout <<"El numero no es multiplo de 11\n" <<endl; } system("pause"); return 0; } [/PHP] Coke. |
La franja horaria es GMT +2. Ahora son las 11:23. |
Powered por vBulletin™ Version 3.8.10
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.
Traducido por vBsoporte - vBulletin en español
ZackYFileS - Foros de Debate