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+ 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告