문자열 형태의 숫자 n이 주어집니다. 작업은 해시 기호를 사용하여 다음 숫자를 크게 인쇄하는 것입니다.
숫자 "1234"를 제공한 것처럼
다음 숫자의 표현은 다음과 같아야 합니다. -
마찬가지로 우리는 우리의 솔루션이 인쇄되기를 원합니다 -
예시
Input: n[] = {“2234”} Output:
Input: n[] = {“987”} Output:
주어진 문제를 해결하기 위해 사용할 접근 방식 -
- 문자열에서 최대 4자리 숫자를 입력합니다.
- 숫자에 대해 원하는 큰 패턴을 하나씩 모든 숫자의 배열을 만듭니다.
- 문자열을 탐색하고 모든 숫자를 하나씩 인쇄합니다.
알고리즘
Start Step 1 -> Define Height as 7 Step 2 -> Define W 8 Step 3 -> In function int large(char num[]) Declare variables i, j, k Set char zero[H][W]={" ##### ", // H=0 " # # ", " # # ", " # # ", " # # ", " # # ", " ##### "}, Set one[H][W]={" # ", " # ", " # ", " # ", " # ", " # ", " # "}, Set two[H][W]={ " ##### ", " # ", " # ", " ##### ", " # ", " # ", " ##### "}, Set three[H][W]={" ##### ", " # ", " # ", " ##### ", " # ", " # ", " ##### "}, Set four[H][W]={" # ", " # # ", " # # ", " ##### ", " # ", " # ", " # "}, Set five[H][W]={" ##### ", " # ", " # ", " ##### ", " # ", " # ", " ##### "}, Set six[H][W]={ " ##### ", " # ", " # ", " ##### ", " # # ", " # # ", " ##### "}, Set seven[H][W]={" ##### ", " # ", " # ", " # ", " # ", " # ", " # "}, Set eight[H][W]={" ##### ", " # # ", " # # ", " ##### ", " # # ", " # # ", " ##### "}, Set nine[H][W]={" ##### ", " # # ", " # # ", " ##### ", " # ", " # ", " # "} If strlen(num) > 10 Print ”You must enter a number upto 10 digits” Else Print new line Set k=1 Set j=0 While k <= 7 Loop For i=0 and i<strlen(num) and i++ If num[i] == '0' then, Print zero[j] Else If num[i] == '1’ then, Print one[j] Else If num[i] == '2' then, Print two[j] Else If num[i] == '3' then, Print three[j] Else If num[i] == '4' then, Print four[j] Else If num[i] == '5' then, Print five[j] Else If num[i] == '6' then, Print six[j] Else If num[i] == '7' then, Print seven[j] Else If (num[i] == '8') Print eight[j] Else If (num[i] == '9') Print nine[j] End For Print newline Increment k by 1 Increment j by 1 End While End Else Step 4 -> Declare int main() Declare and initialize input char n[] = {"2168"} Call function large(n) Stop
예시
#include<stdio.h> #include<string.h> #include<stdlib.h> #define H 7 #define W 8 int large(char num[]) { int i, j, k; // declaring char 2D arrays and initializing // with hash-printed digits char zero[H][W]={" ##### ", // H=0 " # # ", // H=1 " # # ", // H=2 " # # ", // H=3 " # # ", // H=4 " # # ", // H=5 " ##### "},// H=6 one[H][W]={" # ", " # ", " # ", " # ", " # ", " # ", " # "}, two[H][W]={ " ##### ", " # ", " # ", " ##### ", " # ", " # ", " ##### "}, three[H][W]={" ##### ", " # ", " # ", " ##### ", " # ", " # ", " ##### "}, four[H][W]={" # ", " # # ", " # # ", " ##### ", " # ", " # ", " # "}, five[H][W]={" ##### ", " # ", " # ", " ##### ", " # ", " # ", " ##### "}, six[H][W]={ " ##### ", " # ", " # ", " ##### ", " # # ", " # # ", " ##### "}, seven[H][W]={" ##### ", " # ", " # ", " # ", " # ", " # ", " # "}, eight[H][W]={" ##### ", " # # ", " # # ", " ##### ", " # # ", " # # ", " ##### "}, nine[H][W]={" ##### ", " # # ", " # # ", " ##### ", " # ", " # ", " # "}; if (strlen(num) > 10) printf("\nYou must enter a number upto 10 digits.\nTry again!\n"); else { printf("\n"); k=1; j=0; //controls H of each digit while (k <= 7) //controls height { for (i=0; i<strlen(num); i++) //reads each digit { if (num[i] == '0') printf("%s", zero[j]); else if (num[i] == '1') printf("%s", one[j]); else if (num[i] == '2') printf("%s", two[j]); else if (num[i] == '3') printf("%s", three[j]); else if (num[i] == '4') printf("%s", four[j]); else if (num[i] == '5') printf("%s", five[j]); else if (num[i] == '6') printf("%s", six[j]); else if (num[i] == '7') printf("%s", seven[j]); else if (num[i] == '8') printf("%s", eight[j]); else if (num[i] == '9') printf("%s", nine[j]); } printf("\n"); k++; j++; } } return 1; } //main fucntion int main() { char n[] = {"2168"}; large(n); return 0; }
출력