Suma de dígitos igual a un número dado en PL/SQL

Requisito previo : introducción
a PL/SQL En el código PL/SQL, los grupos de comandos se organizan dentro de un bloque. Un grupo de bloques relacionado con declaraciones o sentencias. En declare part, declaramos variables y entre start y end part, realizamos las operaciones.

Dado un número y un rango, la tarea es mostrar todos los números cuya suma de dígitos sea igual al número dado.
Ejemplos:

Entrada: x = 23
Salida: 599 689 698 779 788 797 869 878 887 896 959 968 977 986 995
(Nota: rango->1 a 999)

Entrada: x=12
Salida: 39 48 57 66 75 84 93
(Nota: rango->1 a 100)

El enfoque es tomar un número, encontrar todos los números posibles en el rango dado y sumar todos los dígitos del número y, si la suma de los dígitos es igual al número, luego imprimir ese número.

A continuación su implementación:

--Take a number 
--sum all digit of the number 
--if sum digit is 25  
--then display all 
--Declaration block 
DECLARE 
    --declare N variable 
    n NUMBER; 
    --declare B variable 
    m NUMBER; 
    --declare S variable 
    --S initialize with 0 
    s NUMBER := 0; 
BEGIN 
    --Code block  
    --loop run until max 999 to min 1 
    FOR i IN 1..999 LOOP 
        n := i; 
  
        WHILE n > 0 LOOP 
            --logic of digit sum 
            m := MOD(n, 10); 
  
            s := s + m; 
  
            n := Trunc(n / 10); 
        END LOOP; 
  
        IF s = 25 THEN 
          --digit sum to be same with 25 
          --Display in result 
          dbms_output.Put_line(i 
                               ||' '); 
        END IF; 
  
        s := 0; 
    END LOOP; 
--end loop 
END; 
--end program 

Producción:

799 
889 
898 
979 
988 
997 

Publicación traducida automáticamente

Artículo escrito por jit_t y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *