Vous êtes sur la page 1sur 3

JUGANDO

 CON  NÚMEROS  (Tema  5)    


 
Funcion  y  procedimeinto  son  casos  particulares  de  subprogramas.    
-­‐  Una  función  es  un  subprograma  
-­‐  Un  procedimiento  es  un  subprograma  
 
DIFERENCIA    
Función    devuelve  un  valor,  que  tiene  tipo  
Procedimietno    se  declara  void,  los  valores  que  devuelve  son  variables  con  &,  
los  de  entrada  son  valores  o  varaibles  sin  &  
 
 
1. Definir  la  función  ultimoDigito  que  recibe  un  número  entero  positivo    y  devuelve  
el  último  dígito    
Ejemplo  
ultimoDigito  (123)    devolvería  3  
 
2. Definir  la  función  primerDigito  que  recibe  un  número  entero  positivo    y  
devuelve  el  primer    dígito    
Ejemplo  
primerDigito  (123)    devolvería  1  
primerDigito  (2)    2  
primerDigito  (8976534)    8  
 
3.  Definir  la  función  numDigitos  que  diga  cuantos  dígitos  tiene  un  número    
Ejemplo  
numDigitos  (12345)  5  
numDigitos  (123)    3  
numDigitos  (8)    1  
 
 
4. Definir  la  función  digitoN  que  recibe  un  número  positivo  y  devuelve  el  dígito  
que  está  en  esa  posición.  Si  la  posición  no  existe  se  devolverá  -­‐1  (el  -­‐1  indica  
error).    
Ejemplo  
digitoN  (12345,  3)    3  
digitoN  (12345,  12)    -­‐1  
digitoN  (12345,  1)    1  
digitoN(12345,  0)    -­‐1    
 
 
5.  Definir  la  función  sumaDigitos  que  devuelva  la  suma  de  los  dígitos  de  un  
numero  
Ejemplo  
  sumaDigitos  (6789)    30  
  sumaDigitos  (1000)    1  
  sumaDigitos  (3)    3  
 
6. Definir  la  función  reduceSumaDigitos  sume  sucesivamente  los  dígitos  de  un  
número  hasta  que  se  quede  en  un  número  de  un  dígitos  
reduceSumaDigitos  (6789)    3  (porque  6  +  7+  8  +  9  =  30    3  +  0  =  0)  
reduceSumaDigitos  (3456)  9 (3+4+5+6=18  1+8  9)
 
reduceSumaDigitos  (1000)    1  
reduceSumaDigitos  (3)    3  
reduceSumaDigitos  (9999)    9  
 
7. Define  el  procedimiento  dividirDigitos,  que  recibe  como  entrada  un  número  
entero  de  dos  o  más  dígitos  y  devuelve  como  salida  dos  números,  la  parte  
izquierda  y  la  parte  derecha.  Si  el  número  de  dígitos  del  número  de  entrada  es  
impar,  la  parte  izquierda  tendrá  un  dígito  más  que  la  parte  izquierda.    
 
Resolver  en  problema  con  bucles,  y  no  con  una  formula  directa.  Con  la  formula  
directa  con  el  pow  no  sale  bien  por  los  tipos,  ya  que  trabajamos  con  enteros,  y  no  
con  reales.  Pow  trabaja  con  doublé.    
 
dividirDigitos  (12345,  derecha,  izquierda)    derecha  vale  123,  izquierda  vale  45  
dividirDigitos  (123455,  derecha,  izquierda)    derecha  vale  123,  izquierda  vale  455  
dividirDigitos  (1,  derecha,  izquierda)    derecha  vale  -­‐1,  izquierda  vale  -­‐1    (indican  que  
no  es  posible)  
 
 
8. Definir  la  función  darVuelta  que  recibe  como  entrada  un  número  entero  y  
devuelve  ese  número  dado  la  vuelta.  SE  pide  implementar  la  función  utilizando  
bucles.  Resolver  en  problema  con  bucles.  No  usar  el  pow  
darVuelta  (12345)    54321  
darVuelta  (1)    1  
 
9. Definir  la  función  esPalindromo  que  recibe  como  entrada  un  número  entero  y  
devuelve  como  salida  cierto  si  el  número  es  simétrico..  
esPalindromo  (12321)    True  
esPalindromo  (123421)    False  
esPalindrono  (11211)    True  
 
 
10.  Según Nicómano de Gerasa, el cubo de todo número natural n puede calcularse
como la suma de los n números impares consecutivos a partir de n* (n - 1) , como
puede verse en los siguientes ejemplos.
13 = 1 = 1
23 = 3 + 5 = 8
33 = 7 + 9 + 11 = 27
43 = 13 + 15 + 17 + 19 = 64
53 = 21 + 23 + 25 + 27 + 29 = 125  
 
10.1) Implementar  una  subprograma  que  recibe  como  entrada  un  número,  
y   escribe   por   pantalla     la   secuencia   de   números   impares   que  
permiten  calcular  el  cubo  de  ese  número.  Utiliza  otros  subprogramas  
que  consideres  necesarios.    

Dame un numero: 3
3^3 = 7+9+11 = 27
 
10.2) Escribe   un   programa   que   lea   por   teclado   los   extremos   de   un  
intervalo   de   números,   [a;   b]     y   compruebe   la   teoría   de   Nicómano  
para  todos  los  números  naturales  incluidos  en  el  intervalo,  incluidos  
los   2   extremos.   El   programa   debe   mostrar   en   pantalla   el   cubo   de  
cada   número   y   todos   los   números   impares   que   se   suman   para  
obtenerlo.  Un  ejemplo  de  ejecución  podría  ser:  
 
Dame los extremos del intervalo de numeros naturales: 3 7
3^3 = 7+9+11 = 27
4^3 = 13+15+17+19 = 64
5^3 = 21+23+25+27+29 = 125
6^3 = 31+33+35+37+39+41 = 216
7^3 = 43+45+47+49+51+53+55 = 343
 
11. Números de Kaprekar (Feb 2018)
Un  número  de  Kaprekar    es  aquel  número  entero  no  negativo  tal  que  los  dígitos  de  
su  cuadrado  se  pueden  
separar   en   dos   números   que   sumados   dan   el   número   original.   Por   ejemplo,   el  
número  345  no  es  número  
de   Kaprekar   porque   ninguna   de   las   posibles   separaciones   de   los   dígitos   de   su  
cuadrado  119025  en  dos  números  suman  el  número  original:  
 
11902  +  5  =  11907  6=  345  
 1190  +  25  =  1215  6=  345  
 119  +  025  =  144  6=  345  
 11  +  9025  =  9036  6=  345  
 1  +  19025  =  19026  6=  345  !    395  NO  es  número  de  Kaprekar!  
 
En  cambio,  el  cuadrado  del  número  297  es  88209,  y  al  comprobar  las  sumas  de  los  
dos  números  de  sus  posibles  separaciones  vemos  que  una  de  ellas  sí  coincide  con  
el  original:  
8820  +  9  =  8829  6=  297  
 882  +  09  =  891  6=  297  
 88  +  209  =  297  =  297    Bingo!  297  es  número  de  Kaprekar  
(no  es  necesario  seguir)  
 
Implementa   una   subprograma   (determinar   si   es   función   o   procedieitno)   ,  
esKaprekar    que  determine  si  un  número  es  de  Kaprekar.  
 
OTROS  PROBLEMAS  de  números    33,  34,  35  y  36  de  la  relación  de  
problemas  del  tema  5    

Vous aimerez peut-être aussi