Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 숫자를 하나씩 표시하기 위해 Led Lights의 변경 사항을 계산합니다.

<시간/>

num이라고 하면 양수가 주어지고 작업은 하나씩 표시되는 Led 조명의 변경 횟수를 계산하는 것입니다. 처음에는 모든 LED가 꺼져 있고 문자열 값에 따라 시작된다고 가정합니다.

이 질문을 풀기 위해서는 7세그먼트 디스플레이가 무엇이며 그 작동 방식을 이해해야 합니다.

7세그먼트 디스플레이란 무엇입니까

7세그먼트 디스플레이는 보다 복잡한 도트 매트릭스 디스플레이에 대한 대안인 이미지, 텍스트 또는 십진수의 형태로 정보를 표시하는 방법을 제공하는 출력 디스플레이 장치입니다. 숫자 정보를 표시하는 디지털 시계, 기본 계산기, 전자 계량기 및 기타 전자 장치에 널리 사용됩니다. 숫자 8과 같이 조립된 7개의 LED(발광 다이오드) 세그먼트로 구성됩니다.

C++에서 숫자를 하나씩 표시하기 위해 Led Lights의 변경 사항을 계산합니다.

7세그먼트 디스플레이 작동

모든 세그먼트에 전원이 공급되면 8이 표시되고 'g'에 대한 전원을 차단하면 0이 표시됩니다. 7세그먼트 디스플레이에서는 다른 핀의 전원(또는 전압)이 다른 핀에 인가될 수 있습니다. 동시에 0에서 9까지의 숫자 표시 조합을 구성할 수 있습니다. 7개의 세그먼트 디스플레이는 X 및 Z와 같은 알파벳을 형성할 수 없으므로 알파벳에는 사용할 수 없으며 소수의 숫자 크기를 표시하는 데만 사용할 수 있습니다. 그러나 7세그먼트 디스플레이는 알파벳 A, B, C, D, E, F를 형성할 수 있으므로 16진수 표현에도 사용할 수 있습니다.

C++에서 숫자를 하나씩 표시하기 위해 Led Lights의 변경 사항을 계산합니다.

Input − num = “123 ”
Output − count is 5

설명 - 1을 켜는 데 필요한 총 LED는 2이고, 2를 켜는 데 필요한 총 LED는 5이고, 3을 켜는 데 필요한 총 LED는 5입니다. 따라서 표시에 필요한 총 변경 수는 - 5

Input − num = “576 ”
Output − count is 10

설명 - 5개를 켜는 데 필요한 총 LED는 5개, 7개를 켜는 데 필요한 총 LED는 3개, 6개를 켜는 데 필요한 총 LED는 6개입니다. 따라서 표시에 필요한 총 변경 수는 다음과 같습니다. 10

아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.

  • 켜질 숫자를 정의하는 정수 값의 문자열을 입력하십시오.

  • 문자열의 자릿수에 따라 정수 값을 반환하는 length() 함수를 사용하여 주어진 문자열의 길이를 계산합니다.

  • 모든 LED 값을 저장할 어레이를 만듭니다.

  • 값을 저장할 임시 변수를 temp라고 가정해 보겠습니다.

  • i에서 1까지 루프를 시작하고 길이보다 작은 i

  • 루프 내부에서 temp + abs([LED[str[i] - '0'] - LED[n[i-1] - '0']);

    로 temp를 설정합니다.
  • 개수 반환

  • 결과를 인쇄하십시오.

예시

#include<iostream>
using namespace std;
int countled(string str){
   // number of LED required to display a digit
   int Led[] = { 6, 2, 5, 5, 4, 5, 6, 3, 7, 5 };
   int len = str.length();
   // calculating the change
   int res = Led[str[0] - '0'];
   for (int i = 1; i < len; i++){
      res = res + abs(Led[str[i] - '0'] - Led[str[i - 1] - '0']);
   }
   return res;
}
int main(){
   string str = "123";
   cout <<"count is "<<countled(str);
   return 0;
}

출력

위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다 -

count is 5