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