Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

การนับตัวคูณร่วมของตัวเลขสองตัวในช่วงใน C++


เราได้รับตัวเลข A และ B สองตัว นอกจากนี้ยังมีตัวเลข START และ END สองตัวเพื่อกำหนดช่วงของตัวเลข กระเบื้อง Ath มีสีขาวและกระเบื้อง Bth มีสีดำ หากกระเบื้องถูกทาทั้งขาวดำ กระเบื้องจะกลายเป็นสีเทา เป้าหมายคือการหาจำนวนกระเบื้องสีเทาทั้งหมด .

เราจะทำสิ่งนี้โดยข้ามผ่านตัวเลขจาก 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

  • ใช้ตัวแปรเริ่มต้นนับเป็น 0 สำหรับตัวเลขดังกล่าว

  • ข้ามช่วงของตัวเลขโดยใช้การวนซ้ำ i=start to i=end

  • ถ้า i%a==0 &&i%b==0 จากนั้น 'i' จะเป็นผลคูณของทั้ง a และ b

  • เมื่อสิ้นสุดการวนซ้ำทั้งหมดจะมีจำนวนรวมที่เป็นทวีคูณของ 'a' และ 'b'

  • คืนค่าการนับเป็นผลลัพธ์

ตัวอย่าง

#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