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

C++で整数の偶数桁・奇数桁をカウントする方法

本記事では、与えられた整数に含まれる偶数の数字と奇数の数字をそれぞれカウントする方法を解説します。さらに、偶数の数字が偶数回出現しており、かつ奇数の数字が奇数回出現しているかどうかも判定します。

実行例

入力: digit = 12345
出力: 偶数の個数 = 2
      奇数の個数 = 3

説明: 偶数の数字は2回(偶数回)、奇数の数字は3回(奇数回)出現しているため、条件を満たしています。

入力: digit = 44556
出力: 偶数の個数 = 3
      奇数の個数 = 2

説明: 偶数の数字が3回(奇数回)、奇数の数字が2回(偶数回)出現しているため、条件を満たしていません。

アルゴリズムの考え方

  • 偶数・奇数の数字を含む整数値を入力として受け取ります。

  • 偶数の数字を数える変数と奇数の数字を数える変数を宣言し、それぞれ0で初期化します。

  • 数値が0より大きい間ループを回し、「digit / 10」で値を更新することで、1桁ずつ数字を取り出します。

  • 取り出した数字が2で割り切れれば偶数、そうでなければ奇数と判定します。

  • 偶数なら偶数カウントを1増やし、奇数なら奇数カウントを1増やします。

  • 偶数の数字が偶数回出現しているか確認するには、偶数カウントを2で割り、余りが0であれば偶数回出現、そうでなければ奇数回出現と判断できます。

  • 同様に、奇数カウントを2で割った余りが0でなければ奇数回出現、0であれば偶数回出現と判断できます。

  • 最後に結果を出力します。

サンプルコード

#include <iostream>
using namespace std;
int main(){
   int n = 12345, e_count = 0, o_count = 0;
   int flag;
   while (n > 0){
      int rem = n % 10;
      if (rem % 2 == 0){
         e_count++;
      } else {
         o_count++;
      }
      n = n / 10;
   }
   cout << "Count of Even numbers : "<< e_count;
   cout << "\nCount of Odd numbers : "<< o_count;
   // 偶数の個数が偶数であり、奇数の個数が奇数であるかを判定
   if (e_count % 2 == 0 && o_count % 2 != 0){
      flag = 1;
   } else {
      flag = 0;
   }
   if (flag == 1){
      cout << "\nYes " << endl;
   } else {
      cout << "\nNo " << endl;
   }
   return 0;
}

実行結果

上記のコードを実行すると、以下の出力が得られます。

Count of Even numbers : 2
Count of Odd numbers : 3
Yes
  1. C++で配列の偶数・奇数インデックス要素の絶対差を求める方法

    この記事では、配列内の偶数インデックスと奇数インデックスにある要素の絶対差を求める方法を解説します。絶対差とは、2つの値の差が負になった場合にも絶対値を取ることを指します。 例として、配列 {1, 2, 3, 4, 5, 6, 7, 8, 9} を考えてみましょう。インデックスは0から始まるため、各要素は次のように分類されます。 偶数インデックス(0, 2, 4, 6, 8)の要素:1, 3, 5, 7, 9奇数インデックス(1, 3, 5, 7)の要素:2, 4, 6, 8 計算の手順 まず初期値0から出発し、該当するインデックスの要素を順番に見ながら、直前の累積値との差の絶対値を求めていき

  2. 奇数桁と偶数桁の合計の差が0かどうかを判定するJavaプログラム

    問題文与えられた長整数 n に対して、0番目から数えた奇数番目の桁の合計と、偶数番目の桁の合計との差が 0 になるかどうかを判定するプログラムを作成します。インデックスは 0 から始まるものとします。例n = 1212112 の場合 奇数番目の桁の合計 = 2 + 2 + 1 = 5 偶数番目の桁の合計 = 1 + 1 + 1 + 2 = 5 差 = 5 - 5 = 0 出力 = Yesこのように、両者の合計が一致していれば「Yes」、一致していなければ「No」が出力されます。解法のポイント:11の倍数判定法との関係この問題には、実はとても便利な数学的な性質があります。それは「11の倍