MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

PL/SQLで数値内の奇数の桁と偶数の桁をカウントする方法

本記事では、正の整数が与えられたとき、PL/SQLを使ってその数値に含まれる奇数の桁偶数の桁の個数をそれぞれ求める方法を解説します。

PL/SQLとは、SQLにプログラミング言語の手続き的な機能を組み合わせた言語です。Oracle社によって1990年代前半に開発され、SQLの機能を拡張することを目的としています。PL/SQLは、SQL本体およびJavaと並んで、Oracle Databaseに組み込まれている3つの主要なプログラミング言語のひとつです。

実行例

入力: 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型の変数に、対象となる数値を入力します。
  • VARCHAR2(50)型の変数「length」を用意し、各桁の値を一時的に格納できるようにします。
  • 奇数の桁のカウント用と偶数の桁のカウント用に、2つの変数を用意し、初期値を0に設定します。
  • FORループを1から数値の桁数まで回します。
  • ループ内では、「length := substr(digits, i, 1)」として、i番目の桁を1文字ずつ取り出します。
  • MOD関数でその桁を2で割った余りが0でない場合(=奇数の場合)、奇数のカウントを+1します。
  • それ以外の場合(=偶数の場合)、偶数のカウントを+1します。
  • ループ終了後、結果を出力します。

サンプルコード

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

このように、SUBSTR関数で数値を1桁ずつ分解し、MOD関数で奇偶を判定しながらループ処理を行うことで、簡単に奇数・偶数の桁数を集計できます。桁数が多い数値や動的に変化する数値に対しても、同じロジックをそのまま適用できる点がこの手法のメリットです。

  1. Pythonで偶数桁の数字を数える方法

    数値のリストが与えられたとき、桁数が偶数である数字の個数を数える問題を考えてみましょう。 例えば、配列が [12, 345, 2, 6, 7896] の場合を想定します。「12」は2桁、「7896」は4桁なので桁数が偶数です。一方、「345」「2」「6」は桁数が奇数のため対象外となります。したがって、この場合の出力は 2 になります。 解決のアプローチ この問題は、以下の手順でシンプルに解くことができます。 リストを受け取り、各整数を文字列に変換する 変換後の文字列の長さ(=桁数)が偶数であれば、カウントを1つ増やす すべての要素を処理したら、最終的なカウント値を返す 実装例 それでは、

  2. Pythonでリスト内の偶数と奇数をカウントする3つの方法を解説

    この記事では、リスト内に含まれる偶数と奇数の個数を数える方法について、具体的なコード例とともに解説します。問題の概要課題: 与えられたリストの中から、偶数と奇数がそれぞれいくつ含まれているかをカウントします。ここでは、以下の3つのアプローチを紹介します。それぞれ特徴が異なるため、用途やコードの可読性に応じて使い分けるのがおすすめです。方法1:forループを使った基本的な方法(総当たり方式)最もシンプルで直感的な方法です。拡張forループで各要素を順番に確認し、2で割った余りによって偶数か奇数かを判定します。コード例list1 = [21, 3, 4, 6, 33, 2, 3, 1, 3, 76