Múltiplos sinceros: Se denomina “múltiplos sinceros” a "los números que son múltiplos de un número base de una cifra y en los cuales la suma de sus cifras es también este mismo número base".
Por ejemplo, “múltiplos sinceros” del número base 2 son el 2, 20, 110, 200, 1.010, 1.100, 2.000, ...
Ya que el 20 es múltiplo de 2 y además la suma de sus cifras (2+0) da 2.
El 110 también es múltiplo de 2 y además la suma de sus cifras (1+1+0) da 2.
Otro ejemplo: “múltiplos sinceros” del número base 9 son el 9, 18, 27, 36, 45, 54, 63, 72, 81, 90, 108, 117, ...
Cuadrado de los números de 2 cifras acabados en 5:
El cuadrado de los números de dos cifras que terminan en 5 (por ejemplo 15, 25, 35, etc.) se puede hacer de manera muy rápida: "Multiplicando la decena propia por la siguiente y añadiendo un 25 detrás"
Ejemplos:
15²: multiplicamos su decena (1) por la siguiente (2), y obtenemos 1x2= 2 añadimos un 25 detrás y tenemos el 225, que es 15².
55² : 5 x 6 = 30, añadimos el 25 y sale 3.025 = 55²
65² : 6 x 7 = 42, añadimos el 25 y sale 4.225 = 65²
Números colegas:
Un número n es “colega” de una cifra d, si el número n empieza y termina por la cifra d.
Por ejemplo: El número n =101 es colega de la cifra d = 1
El número n = 22 es colega de la cifra 2
El numero n = 3012 NO es colega de la cifra d = 3
El número n = 12341 es colega de la cifra 1.
Práctica:
Dada esta información desarrollar un programa que:
Muestre un menú que permita escoger entre:
a) Múltiplos sinceros
b) Cuadrado de números de 2 cifras acabados en 5
c) Números colegas
d) Terminar
Si el usuario escoge la opción a) deberá solicitar dos números, correspondientes al número base y al mayor número (límite) que puede aparecer en la secuencia y mostrará los “múltiplos sinceros” de dicho número base hasta el límite. Por ejemplo, si introduce como número base el 2 y como límite el 1000 deben aparecer los números: 2, 20, 110, 200 ya que el siguiente “múltiplo sincero” que es 1010 supera el límite 1000.
Si el usuario escoge la opción b) nuestra aplicación le pedirá un número que termine en 5 y mostrará el cuadrado de dicho número usando el método descrito en el apartado de teoría.
Si el usuario elige la opción c) la aplicación le pedirá un número entero positivo (n) y un número de una única cifra (d) y escribirá en pantalla si el número n es “colega” de la cifra d.
El programa debe pedir opciones y realizar las tareas asignadas hasta que el usuario escoge la opción d), momento en el cual el programa terminará.
http://www.scribd.com/doc/43115903/practica-obligatoria2#
amuchamu escribió:Pregunta algo concreto, no esperes que vayamos al enlace del ejercicio (que además pones en un spoiler, para qué están los enlaces...), nos leamos el enunciado y te lo hagamos.
VAR
i, base, limite, contador: integer
writeln(base); {para que escriba directamente la base}
FOR i:=base TO limite DO
BEGIN
contador:=0;
{aqui las cuentas que no se}
writeln(numero);
ELSE
contador:=contador+1;
END.
amuchamu escribió:Para calcular la suma de las cifras de un número, copias el número en una variable auxiliar y mientras esa variable sea mayor que cero, vas sacando el resto de dividir por 10, lo sumas donde quieras y divides la auxiliar entre 10.
No sé para qué usas el contador dentro del for, no te hace falta.
amuchamu escribió:Ya sé que no pide la suma de las cifras del número ¬¬
Primero calculas la suma de las cifras del número.
Si la suma es igual a la base, compruebas si el número es múltiplo de la base y, si lo es, lo imprimes.
Una vez que lo sepas hacer para un número, hacerlo para todos es sólo meterlo en un bucle.
num MOD 10
realn(j);
num DIV 10;
readln(num);
num MOD 10;
readln(k);
suma:= j + k;
suma = 0
MientrasQue n > 0 hacer
suma = suma + n (mod 10)
n = n / 10
FinMQ