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

C ++で桁の合計が3で割り切れる[L、R]の範囲内のすべての偶数の数


範囲[L、R]を定義する2つの数値LとRが与えられます。目標は、LとRの間で偶数であり、その桁の合計が3で割り切れるすべての数値を見つけることです。

これを行うには、LとRの間のすべての偶数の桁の合計を計算し、その合計が%3==0の場合はカウントをインクリメントします。

例を挙げて理解しましょう。

入力 − L =10、R =20

出力 −桁の合計が3:2で割り切れる[L、R]の範囲内のすべての偶数の数

説明 −偶数の10から20までの数字。 10,12,14,16,18,20。その桁の合計は3=12と18で割り切れます。

入力 − L =100、R =108

出力 −桁の合計が3:2で割り切れる[L、R]の範囲内のすべての偶数の数

説明 −偶数の100から108までの数値。 100、102、104、106、108。その桁の合計は3=102と108で割り切れます。

以下のプログラムで使用されているアプローチは次のとおりです

  • 範囲を定義するために、最初と最後に変数を取ります。

  • 関数Digit_sum(int num)は数値を受け取り、その桁の合計を返します。

  • whileループを使用して、num!=0になるまで、合計にnum%10(単位桁)を追加します。

  • numを10で割って減らします。

  • 最後に、合計はすべての桁の合計になります。

  • 関数divisible_3(int first、int last)は数値の範囲を取り、桁の合計が3で割り切れる偶数の数を返します。

  • インデックスi=firstからi<=lastまで。番号iが偶数かどうかを確認します。 (i%2 ==0)。

  • trueの場合、Digit_sum(i)を呼び出してiの桁の合計を計算します。その合計%3==0の場合。次に、カウントをインクリメントします。

  • 結果としてのforループリターンカウントの終了時。

#include <bits/stdc++.h>
using namespace std;
int Digit_sum(int num){
   int total = 0;
   while (num!= 0){
      total += num % 10;
      num = num / 10;
   }
   return total;
}
int divisible_3(int first, int last){
   int count = 0;
   for (int i = first; i <= last; i++){
      if (i % 2 == 0 && Digit_sum(i) % 3 == 0){
         count++;
      }
   }
   return count;
}
int main(){
   int first = 300, last = 500;
   cout<<"Count of all even numbers in the range [L, R] whose sum of digits is divisible by 3 are: "<<divisible_3(first, last);
   return 0;
}

出力

上記のコードを実行すると、次の出力が生成されます-

Count of all even numbers in the range [L, R] whose sum of digits is divisible by 3 are: 34

  1. C++で最大の連続する偶数の数を見つけます

    n個の要素を持つ配列Aがあるとします。与えられた配列内の連続する偶数の最大数を見つける必要があります。したがって、配列がA =[1、2、3、4、6、8、7]のような場合、カウントは3になります。 これは簡単に解決できます。 2つのカウント変数が必要です。1つはmax_currentで、もう1つはmax_till_nowです。偶数が見つかった場合は、max_currentを増やしてから、max_till_nowと比較します。奇数の要素が見つかるたびに、max_countを0にリセットします。 例 #include<iostream> using namespace std; int

  2. C++での桁の合計に従って数値を並べ替えます

    このセクションでは、数字の合計に従って数値を並べ替える方法を説明します。したがって、数字の桁数が少ない場合は、最初に配置され、次に数字の合計が大きい数字が配置されます。 data = {14, 129, 501, 23, 0, 145} 並べ替えると、-になります。 data = {0, 14, 23, 501, 145, 129} ここでは、それらを並べ替えるための独自の比較ロジックを作成します。その比較ロジックは、C++STLの並べ替え関数で使用されます。 アルゴリズム compare(num1, num2): Begin    if sum of digits o