使用 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

