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