在 PL/SQL 中统计数字中奇数和偶数的个数
给定一个正整数,任务是使用 PL/SQL 计算数字中奇数和偶数的个数。
PL/SQL 是 SQL 与编程语言的过程特性相结合的产物。它由 Oracle 公司在 90 年代初期开发,以增强 SQL 的功能。
PL/SQL 是嵌入在 Oracle 数据库中的三种主要编程语言之一,另外两种是 SQL 本身和 Java。
输入
int number = 23146579
输出
count of odd digits in a number are : 5 count of even digits in a number are : 3
说明 − 在给定的数字中,我们有 2、4、6 作为偶数,因此数字中偶数的个数为 3;我们有 3、1、5、7 和 9 作为奇数,因此数字中奇数的个数为 5。
输入
int number = 4567228
输出
count of odd digits in a number are : 2 count of even digits in a number are : 5
说明 − 在给定的数字中,我们有 5 和 7 作为奇数,因此数字中奇数的个数为 2;我们有 4、6、2、2 和 8 作为偶数,因此数字中偶数的个数为 5。
下面程序中使用的算法如下
将数字输入到 PL/SQL 中 NUMBER 数据类型的整型变量中。
使用 VARCHAR(50) 类型定义长度,它描述了可以存储的最大长度。
取两个变量作为奇数计数和偶数计数,并将其初始值设置为 0。
从 1 到长度开始循环,并将数字传递给它。
在循环内部,将长度设置为 substr(number, i, 1)。
现在,检查 length 对 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
广告