Advertisement
LittleSpec123

Sumar digitos

Oct 14th, 2019
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.43 KB | None | 0 0
  1. Se trata de implementar un programa que sume los dıgitos de un n´umero entero no negativo. Por
  2. ejemplo, la suma de los d´ıgitos del 3433 es 13.
  3. Para darle un poco m´as de emoci´on, el programa no se limitar´a a escribir el resultado de la suma,
  4. sino que tambi´en escribir´a todos los sumandos utilizados: 3 + 4 + 3 + 3 = 13.
  5. Entrada
  6. La entrada consta de una serie de casos de prueba terminados con un n´umero negativo. Cada caso
  7. de prueba es una simple l´ınea con un n´umero no negativo no mayor que 109 del que habr´a que sumar
  8. todos sus d´ıgitos.
  9. Salida
  10. Para cada caso de prueba se mostrar´a una l´ınea en la que aparecer´an cada uno de los d´ıgitos separados
  11. por el signo +, tras lo cual aparecer´a el s´ımbolo = y la suma de todos los d´ıgitos.
  12. Ten en cuenta que antes y despu´es de cada s´ımbolo (+ y =) hay un espacio.
  13.  
  14.  
  15. #include  <stdio.h>
  16.  
  17. int sumarDigitos(int);
  18.  
  19. int main(void)
  20. {
  21.     int num;
  22.     do {
  23.         scanf("%d", &num);
  24.        
  25.         if (num != -1) {
  26.             printf(" = %i", sumarDigitos(num));
  27.         } else {
  28.             break;
  29.         }
  30.        
  31.     } while (1 == 1);
  32.    
  33.     return 0;
  34. }
  35.  
  36.  
  37. int sumarDigitos(int num)
  38. {
  39.     /* caso base n < 10
  40.      * caso Rec  n >= 10
  41.     */
  42.    
  43.     if (num < 10) {
  44.         printf("%i", num);
  45.         return num;
  46.     }
  47.    
  48.     int suma = sumarDigitos(num / 10) + num % 10;
  49.     printf(" + %i", num % 10);
  50.     return suma;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement