C++ 中兩個數字在一定範圍內公倍數的計數


給定兩個數字 A 和 B。還提供了兩個數字 START 和 END 來定義一個數字範圍。第 A 個方塊塗成白色,第 B 個方塊塗成黑色。如果方塊同時塗成黑色和白色,則變成灰色。目標是找到灰色方塊的總數。

我們將透過遍歷從 START 到 END 的數字來實現這一點,對於每個數字,我們將檢查該數字是否是 A 和 B 的倍數。如果是,則增加計數。

讓我們透過示例來理解。

輸入

START=10 END=20 A=3 B=6

輸出

Common multiples of A and B ( grey tiles ): 2

解釋

Numbers 12, 18 are multiples of 3 and 6.

輸入

START=1 END=100 A=10 B=11

輸出

Common multiples of A and B ( grey tiles ): 0

解釋

No common multiple of 10 and 11 in range.

下面程式中使用的演算法如下

  • 我們將整數 START 和 END 作為範圍變數。

  • 我們將 A 和 B 作為兩個變數。

  • 函式 countGrey(int start, int end, int a, int b) 獲取範圍變數、a、b 並返回 a 和 b 的倍數的計數。

  • 將初始變數 count 設為 0,表示此類數字。

  • 使用 for 迴圈遍歷數字範圍。i=start 到 i=end

  • 如果 i%a==0 並且 i%b==0。則'i' 是 a 和 b 的倍數。

  • 在所有迴圈結束時,count 將包含 a 和 b 的倍數的總數

  • 返回 count 作為結果。

示例

即時演示

#include <bits/stdc++.h>
using namespace std;
int countGrey(int start, int end, int a, int b){
   int count = 0;
   for (int i = start; i <= end; i++){
      if(i%a==0 && i%b==0) //tile is grey
         { count++; }
   }
   return count;
}
int main(){
   int START =10, END = 30;
   int A=4, B=3;
   cout <<"Common multiples of A and B ( grey tiles ): "<<
   countGrey(START,END, A, B);
   return 0;
}

輸出

如果我們執行以上程式碼,它將生成以下輸出:

Common multiples of A and B ( grey tiles ): 2

更新於: 2020年10月31日

2K+ 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告