在 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

更新于:2023年3月9日

2K+ 次浏览

开启您的职业生涯

通过完成课程获得认证

开始学习
广告