Computer >> Máy Tính >  >> Lập trình >> C ++

Tìm xem một số có chia hết cho mọi số trong danh sách trong C ++ hay không

Trong bài toán này, chúng ta được đưa ra một danh sách gồm n số và một số. Nhiệm vụ của chúng ta là tìm xem một số có chia hết cho mọi số trong danh sách hay không.

Chúng ta cần kiểm tra xem số đã cho có chia hết các phần tử của danh sách hay không.

Hãy lấy một ví dụ để hiểu vấn đề,

Đầu vào: danh sách [] =[4, 10, 6, 5, 9] num =5

Đầu ra: Không

Giải thích:

Các phần tử 4, 6, 9 không chia hết cho 5.

Phương pháp tiếp cận giải pháp:

Để giải quyết vấn đề, chúng ta cần kiểm tra xem có phần tử nào của danh sách chia hết cho num hay không. Nếu mọi số danh sách chia hết cho num, trả về true, còn lại trả về false.

Thuật toán:

Bước 1: Vòng lặp cho i -> 0 đến n, n là độ dài của danh sách.

Bước 1.1: nếu danh sách [i]% num! =0, trả về -1.
Bước 1.2: khác, danh sách [i]% num ==0, tiếp tục.

Bước 2: trả về 1.

Chương trình minh họa hoạt động của giải pháp của chúng tôi,

Ví dụ

#include <iostream>
using namespace std;

bool isListDivNum(int list[], int num, int size)
{
   for (int i = 0; i < size; i++) {
      if (list[i] % num != 0)
         return false;
   }
   return true;
}

int main() {
   
   int list[] = {762, 9, 123, 99};
   int num = 3;
   int size = (sizeof(list) / sizeof(list[0]));
   if (isListDivNum(list, num , size))
      cout<<"All elements of the list are divisible by number";
   else
      cout<<"All elements of the list are not divisible by number";

   return 0;
}

Đầu ra -

All elements of the list are divisible by number