Giới thiệu
PL/SQL (Procedural Language/SQL) là ngôn ngữ thủ tục của Oracle Database, kết hợp SQL với các cấu trúc lập trình (vòng lặp, điều kiện, biến). Bài toán: đếm số chữ số chẵn và lẻ trong một số nguyên dương.
Thuật toán
- Nhập số vào biến
digits(kiểu NUMBER). - Duyệt qua từng chữ số bằng vòng lặp
FOR i IN 1..LENGTH(digits). - Lấy chữ số tại vị trí
ibằngSUBSTR(digits, i, 1). - Kiểm tra chẵn/lẻ bằng
MOD(so, 2). - Tăng biến đếm tương ứng.
- In kết quả bằng
DBMS_OUTPUT.PUT_LINE.
Code PL/SQL
DECLARE
digits NUMBER := 23146579;
len VARCHAR2(50);
count_odd NUMBER(10) := 0;
count_even NUMBER(10) := 0;
BEGIN
FOR i IN 1..LENGTH(digits) LOOP
len := SUBSTR(digits, i, 1);
IF MOD(len, 2) != 0 THEN
count_odd := count_odd + 1;
ELSE
count_even := count_even + 1;
END IF;
END LOOP;
DBMS_OUTPUT.PUT_LINE('count of odd digits in a number are : ' || count_odd);
DBMS_OUTPUT.PUT_LINE('count of even digits in a number are : ' || count_even);
END;
Kết quả
count of odd digits in a number are : 5
count of even digits in a number are : 3
Giải thích: Số 23146579 có chữ số lẻ: 3,1,5,7,9 (5 số); chẵn: 2,4,6 (3 số).
Ví dụ 2: Input 4567228 → Odd: 2 (5,7), Even: 5 (4,6,2,2,8).