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

Đếm số lỗ trong một số nguyên trong C ++


Cho một mảng lỗ [10] chứa một số lỗ từ 0 đến 9. Mục đích là tìm số lỗ trong một số nguyên được cho làm đầu vào. Đã cho - lỗ [] ={2, 1, 1, 0, 0, 1, 1, 1, 0}

Ví dụ

Đầu vào

number = 239143

Đầu ra

Count the number of holes in an integer are: 3

Giải thích

We will count holes given in holes[]
239143 ( 1+0+0+2+0+0 )

Đầu vào

number = 12345

Đầu ra

Count the number of holes in an integer are: 3

Giải thích

We will count holes given in holes[]
12345 ( 1+1+0+0+1)

Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau -

Chỉ cần lấy từng chữ số ngoài cùng bên trái bằng cách sử dụng num% 10 và thêm số lỗ từ các lỗ [num% 10] để đếm. Sau đó, giảm số num đi 10.

  • Lấy một số nguyên làm đầu vào.

  • Khởi tạo mảng [] lỗ.

  • Hàm hole_integer (số int, int lỗ []) trả về số lượng lỗ trong một số nguyên.

  • Lấy số lượng ban đầu là 0.

  • Di chuyển đến số> 0.

  • Lấy chữ số ngoài cùng bên trái làm temp =number% 10. Thêm lỗ [temp] để đếm.

  • Giảm số lượng đi 10.

  • Kết quả trả về là kết quả cuối cùng.

Ví dụ

#include <bits/stdc++.h>
using namespace std;
int holes_integer(int number, int holes[]){
   int count = 0;
   while (number > 0){
      int temp = number % 10;
      count = count + holes[temp];
      number = number/10;
   }
   return count;
}
int main(){
   int number = 239143;
   int holes[] = { 2, 1, 1, 0, 0, 1, 1, 1, 0};
   cout<<"Count the number of holes in an integer are: "<<holes_integer(number, holes);
   return 0;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

Count the number of holes in an integer are: 2