[첫 번째, 마지막] 간격이 주어집니다. 목표는 이 간격 내에서 첫 번째와 마지막 숫자가 동일한 숫자의 개수를 찾는 것입니다. 예를 들어, 232는 2와 첫 번째 및 마지막 숫자가 동일합니다.
우리는 i=first에서 i=last까지 순회함으로써 이것을 할 것입니다. 각 숫자에 대해 첫 번째 숫자와 마지막 숫자가 같으면 숫자를 비교합니다.
예를 들어 이해합시다.
입력 − 처음=8 마지막=40
출력 − 첫 번째와 마지막 숫자가 같은 숫자의 개수 − 5
설명 − 첫 번째와 마지막 숫자가 동일한 8에서 40 사이의 숫자 −
8, 9, 11, 22, 33
입력 − 처음=100 마지막=200
출력 − 첫 번째와 마지막 숫자가 같은 숫자의 개수:5
설명 − 100에서 200 사이의 첫 번째와 마지막 숫자가 동일한 숫자 −
101, 111, 121, 131, 141, 151, 161, 171, 181, 191.
아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.
-
범위를 정의하기 위해 처음과 마지막에 두 개의 정수를 사용합니다.
-
함수 getFirstDigit(int num)은 숫자를 받아 첫 번째 숫자를 반환합니다.
-
num>=10일 때 num을 10으로 나눕니다. 끝에서 num은 첫 번째 숫자를 갖습니다. 이 값을 반환합니다.
-
함수 getCount(int fst,int lst)는 범위 변수를 사용하고 첫 번째와 마지막 숫자가 동일한 숫자의 개수를 반환합니다.
-
초기 카운트를 0으로 합니다.
-
for 루프 시작을 i=fst에서 i=lst까지 사용하여 각 i에 대해 getFirstDigit(i)를 호출하여 첫 번째 숫자를 계산하고 fdigit에 저장합니다. (fdigit=getFirstDigit(i)).
-
마지막 숫자를 ldigit=i%10으로 계산합니다.
-
ldigit==fdigit이면 동일함을 의미합니다. 증분 수.
-
결과로 카운트를 반환합니다.
예시
#include <bits/stdc++.h> using namespace std; //to find starting digit int getFirstDigit(int num){ while (num >= 10) { num = num/ 10; } return num; } int getCount(int fst,int lst){ int count=0; for(int i=fst;i<=lst;i++){ int fdigit=getFirstDigit(i); int ldigit=i%10; //to get last digit if(fdigit==ldigit) //if both are equal increment count { ++count; } } return count; } int main(){ int first = 10, last = 23; cout<<"Numbers with same first and last digits:"<<getCount(first, last); return 0; }
출력
위의 코드를 실행하면 다음과 같은 출력이 생성됩니다 -
Numbers with same first and last digits:2