C++中計算[L, R]範圍內所有偶數的個數,其各位數字之和能被3整除
給定兩個數字L和R,定義一個範圍[L,R]。目標是在L和R之間找到所有偶數,並且其各位數字之和能被3整除。
我們將透過計算L和R之間所有偶數的各位數字之和,如果該和%3==0,則計數器加1。
讓我們透過例子來理解。
輸入 − 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。
下面程式中使用的方法如下
我們首先取變數first和last來定義範圍。
函式Digit_sum(int num)接收數字並返回其各位數字之和。
使用while迴圈,直到num!=0,將num%10(個位數字)新增到total中。
將num除以10以減少它。
最後,total將包含所有數字的和。
函式divisible_3(int first, int last)接收數字範圍並返回各位數字之和能被3整除的偶數的個數。
從索引i=first到i<=last開始。檢查數字i是否為偶數。(i%2==0)。
如果是,則透過呼叫Digit_sum(i)計算i的各位數字之和。如果該和%3==0,則計數器加1。
在for迴圈結束時,返回count作為結果。
示例
#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
廣告
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP