Nhiệm vụ được giao là tìm số lượng lớn nhất có thể được hiển thị bằng cách sử dụng N phân đoạn trên số kiến của hiển thị bảy đoạn.
Bây giờ chúng ta hãy hiểu những gì chúng ta phải làm bằng cách sử dụng một ví dụ -
Đầu vào - N =5
Đầu ra - 71
Giải thích - Số lớn nhất sẽ được hiển thị như sau trên màn hình bảy đoạn -
Đầu vào - N =6
Đầu ra - 111
Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau
-
Tình huống sau có thể được chia thành 3 trường hợp -
-
Trường hợp 1 -
Nếu N là 0 hoặc 1, thì không thể hiển thị bất kỳ số nào.
-
Trường hợp 2 -
Nếu N lẻ. Khi đó các số có thể được hiển thị với số đoạn lẻ là 2, 3, 5, 7 và 8, trong đó 7 chiếm số đoạn ít nhất, nghĩa là 3. Do đó 7 là chữ số có nghĩa nhất trong trường hợp này.
-
Trường hợp 3 -
Nếu N chẵn. Khi đó các số có thể được hiển thị với số đoạn lẻ là 0, 1, 4, 6, 9 và 8, trong đó 1 chiếm số đoạn ít nhất, nghĩa là 2. Do đó 1 là chữ số có nghĩa nhất trong trường hợp này .
-
-
Trong hàm MaxNumber (), trước tiên hãy kiểm tra điều kiện cơ sở bằng cách sử dụng
nếu (N ==1 || N ==0)
-
Sau đó, sử dụng một câu lệnh if khác, kiểm tra xem N có chẵn không. Nếu vậy, hãy in “1” vì nó là chữ số có nghĩa nhất trong trường hợp chẵn và gọi MaxNumber (N - 2) vì 2 phân đoạn đang được sử dụng ở đây.
-
Sử dụng một câu lệnh if khác để kiểm tra xem N có lẻ hay không. Nếu vậy, hãy in “7” vì nó là chữ số có nghĩa nhất trong trường hợp lẻ và gọi MaxNumber (N - 3) vì 3 phân đoạn đang được sử dụng ở đây.
Ví dụ
#include <iostream> using namespace std; void MaxNumber(int N){ //Condition to check base case if (N == 1 || N == 0){ return; } //If the number is even if (N % 2 == 0){ cout << "1"; MaxNumber(N - 2); } //If the number is odd else if (N % 2 == 1){ cout << "7"; MaxNumber(N - 3); } } //Main function int main(){ int N; N = 5; MaxNumber(N); return 0; }
Đầu ra
Nếu chúng ta chạy đoạn mã trên, chúng ta sẽ nhận được kết quả sau -
71