使用 PL/SQL 计算数字中的奇数和偶数

pl/sqlh2 databaserdbms更新于 2025/3/7 23:08:17

给定一个正整数,任务是使用 PL/SQL 计算数字中奇数和偶数的数量。

PL/SQL 是 SQL 与编程语言的过程化特性的结合。它是由 Oracle 公司于 90 年代初开发的,旨在增强 SQL 的功能。

PL/SQL 是 Oracle 数据库中嵌入的三种关键编程语言之一,另外两种是 SQL 本身和 Java。

输入

int number = 23146579

输出 

数字中奇数位数为:5
数字中偶数位数为:3

解释 − 在给定的数字中,我们有 2、4、6 作为偶数位,因此数字中偶数位数为 3;我们有 3、1、5、7 和 9 作为奇数位,因此数字中奇数位数为5.

输入

int number = 4567228

输出 

一个数的奇数位数为:2
一个数的偶数位数为:5

解释 − 给定一个数,奇数位是 5 和 7,因此奇数位的位数为 2;偶数位是 4、6、2、2 和 8,因此偶数位的位数为 5。

以下程序使用的方法如下

  • 在 NUMBER 类型的整数变量中输入一个数字,用于PL/SQL。

  • 获取一个 VARCHAR(50) 类型的长度,该类型描述了长度可以存储的最大大小。

  • 获取两个变量,分别表示奇数位的计数和偶数位的计数,并将它们初始设置为 0。

  • 开始循环,从 1 开始直到长度,同时向其传递一个数字。

  • 在循环中,将长度设置为 substr(number, i, 1)

  • 现在,检查如果长度除以 2 的模不等于 0,则增加数字中奇数位的计数。

  • 否则,增加数字中偶数位的计数。

  • 打印结果。

示例

DECLARE
   digits NUMBER := 23146579;
   length VARCHAR2(50);
   count_odd NUMBER(10) := 0;
   count_even NUMBER(10) := 0;
BEGIN
   FOR i IN 1..Length(digits)
   LOOP
      length := Substr(digits, i, 1);
      IF mod(length, 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;

输出

如果我们运行上述代码,它将生成以下输出 -

count of odd digits in a number are : 5
count of even digits in a number are : 3