시작과 끝이 있는 범위가 주어지고 주어진 범위에 있는 16진수 또는 알파벳의 개수를 계산하는 작업이 주어집니다.
16진수 알파벳이란 무엇입니까?
컴퓨터 용어로 16진수는 밑이 16인 숫자로, 이진수를 16비트로 표현할 수 있음을 의미합니다. 0-15 사이의 정수로 구성됩니다. 여기서 10은 A, 11은 B, 12는 C, 13은 D, 14는 E, 15는 F로 표시됩니다.
따라서 아래 프로그램에서 우리의 임무는 범위가 16진법 알파벳으로 구성되어 있는지 여부를 찾는 것입니다.
예
Input − start = 10, End = 13 Output − 4
설명 − 10과 13 사이에는 4개의 16진수가 있습니다. 즉, 10은 A, 11은 B, 12는 C, 13은 D입니다.
Input − start = 15, End = 16 Output − 1
설명 − 16진수 알파벳은 하나만 있습니다. 즉, 15는 F로, 16은 10으로 각각 표시됩니다.
아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.
-
변수에서 시작하여 시작과 끝을 입력합니다.
-
개수를 저장할 변수 개수를 선언하고 0으로 초기화
-
루프를 시작하여 with i를 시작하고 i가 끝보다 작거나 같을 때까지
-
루프 내에서 i가 10보다 크거나 같은지 확인하고 i도 15보다 크거나 같은지 확인한 다음 1만큼 카운트를 늘립니다.
-
그렇지 않으면 i가 15보다 큰지 확인하십시오.
-
그런 다음 임시 변수 temp를 i 값으로 설정하고 k가 0이 아닌 동안 순회합니다.
-
그리고 k%16이 10보다 크거나 같은지 확인하십시오.
-
개수를 1 증가
-
, temp/16으로 온도를 설정합니다.
-
count 값을 반환합니다.
-
결과를 인쇄하십시오.
예시
#include <iostream> using namespace std; // Function to count the // total number hexadecimal alphabet int counthexa(int start, int end){ int result = 0; for (int i = start; i <= end; i++){ // All hexadecimal alphabets // from 10 to 15 if (i >= 10 && i <= 15){ result++; } // If i > 15 then perform mod by 16 repeatedly // till the number is > 0 // If number % 16 > 10 then increase count else if (i > 15){ int k = i; while (k != 0){ if (k % 16 >= 10){ result++; } k = k / 16; } } } return result; } // Main Function int main(){ int start = 10, end = 60; cout << "count is: "<<counthexa(start, end); return 0; }
출력
위의 코드를 실행하면 다음 출력이 생성됩니다 -
count is: 21