[첫 번째, 마지막] 간격이 주어집니다. 목표는 단위 자릿수가 k이고 범위 [first, last] 사이에 있는 숫자의 개수를 찾는 것입니다.
우리는 i=first에서 i=last까지 순회함으로써 이것을 할 것입니다. 각 숫자에 대해 단위 자릿수를 k와 비교합니다. 동일한 경우 카운트가 증가합니다.
예를 들어 이해합시다.
입력 - 처음=8 마지막=40 , k=8
출력 − 단위 자릿수가 k인 숫자의 개수 − 4
설명 -
Numbers between 8 and 40 with unit digit = 8 8,18, 28, 38
입력 - 처음=100 마지막=200 , k=9
출력 − 단위 자릿수가 k인 숫자의 개수 − 10
설명 -
Numbers between 100 and 200 with unit digit = 9 109, 119, 129, 139, 149, 159, 169, 179, 189, 199. Total:10
아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.
-
범위 [first, last]를 정의하기 위해 처음과 마지막에 두 개의 정수를 사용합니다.
-
함수 getCount(int fst, int lst, int k)는 범위 변수와 k를 취하여 fst와 lst 사이의 수를 반환하고 단위 자릿수는 k입니다.
-
초기 카운트를 0으로 합니다.
-
for 루프 시작을 i=fst에서 i=lst까지 사용하여 각 i에 대해 단위 자릿수를 ldigit=i%10으로 계산합니다.
-
ldigit==k이면 카운트를 증가시킵니다.
-
결과로 카운트를 반환합니다.
예시
#include <bits/stdc++.h> using namespace std; int getCount(int fst,int lst,int k){ int count=0; for(int i=fst;i<=lst;i++){ int ldigit=i%10; //to get last digit if(ldigit==k) //if both are equal increment count { ++count; } } return count; } int main(){ int first = 5, last = 30; int K=5; cout<<"Numbers with unit digit K in range:"<<getCount(first, last, K); return 0; }
출력
위의 코드를 실행하면 다음과 같은 출력이 생성됩니다 -
Numbers with unit digit K in range:3