在C ++中其数字之和可被3整除的[L,R]范围内的所有偶数的计数

我们给了两个数字L和R,它们定义了一个范围[L,R]。目的是找到L和R之间所有偶数,并且其数字之和可被3整除。

我们将通过计算L和R之间所有偶数的位数之和和递增计数(如果该和%3 == 0)来实现。

让我们通过示例来理解。

输入-L = 10,R = 20

输出-[L,R]范围内的所有偶数的计数,其位数之和可被3:2整除

说明-10到20之间的数字是偶数。10、12、14、16、18、20。其数字可被3 = 12和18整除的总和。

输入-L = 100,R = 108

输出-[L,R]范围内的所有偶数的计数,其位数之和可被3:2整除

说明-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