Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

นับเลขคี่และเลขคู่ในตัวเลขใน PL/SQL


เราได้รับจำนวนเต็มบวกของหลัก และภารกิจคือการคำนวณการนับเลขคี่และเลขคู่ในตัวเลขโดยใช้ PL/SQL

PL/SQL คือการรวมกันของ SQL ร่วมกับคุณสมบัติขั้นตอนของภาษาโปรแกรม ได้รับการพัฒนาโดย Oracle Corporation ในช่วงต้นทศวรรษ 90 เพื่อเพิ่มความสามารถของ SQL

PL/SQL เป็นหนึ่งในสามภาษาการเขียนโปรแกรมหลักที่ฝังอยู่ในฐานข้อมูล Oracle พร้อมกับ SQL และ Java

ป้อนข้อมูล − จำนวนเต็ม =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

ป้อนข้อมูล − จำนวนเต็ม =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.

แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้

  • ป้อนตัวเลขในตัวแปรประเภทจำนวนเต็มของประเภทข้อมูล NUMBER ที่ใช้ใน PL/SQL

  • ใช้ความยาวของประเภท VARCHAR(50) ซึ่งอธิบายขนาดความยาวสูงสุดที่สามารถจัดเก็บได้

  • นำตัวแปรสองตัวมานับเลขคี่และนับเป็นเลขคู่และตั้งค่าเริ่มต้นเป็น 0

  • เริ่มวนรอบสำหรับตั้งแต่ 1 จนถึงความยาวในขณะที่ส่งตัวเลขไปให้

  • ภายในลูป กำหนดความยาวเป็น substr(number, i, 1)

  • ตอนนี้ ให้ตรวจสอบว่า IF mod ของความยาว 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