숫자 범위를 정의하기 위해 두 개의 숫자 START와 END가 제공됩니다. 목표는 [START,END] 범위에서 주어진 숫자 Y와 자릿수의 합이 같은 모든 숫자를 찾는 것입니다.
START에서 END까지 숫자를 탐색하여 이를 수행하고 각 숫자에 대해 while 루프를 사용하여 숫자의 합을 계산합니다. 이 합계가 Y와 같으면 카운트를 증가시킵니다.
예를 들어 이해합시다.
입력
START=10 END=20 Y=4
출력
Numbers such that digit sum is equal to Y: 1
설명
Number 13 has digit sum equal to 4.
입력
START=10 END=50 Y=5
출력
Numbers such that digit sum is equal to Y: 5
설명
Numbers 14, 23, 32, 41 and 50 have digit sum 5.
아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.
-
정수 START, END, Y를 사용합니다.
-
함수 digitSum(int start, int end, int y)는 숫자가 y인 숫자의 개수를 반환합니다.
-
이러한 숫자에 대해 초기 변수 개수를 0으로 간주합니다.
-
변수 digsum을 0으로 사용
-
for 루프를 사용하여 숫자 범위를 탐색합니다. i=시작에서 i=끝
-
이제 각 숫자 num=i에 대해 while 루프를 사용하여 number가>0인지 확인합니다.
-
digsum+=num%10을 계산합니다. 다음 숫자를 추가하려면 num=num/10을 줄입니다.
-
동안이 끝나면 ( digsum ==d ) 확인하십시오. true인 경우 카운트가 증가합니다.
-
모든 루프의 끝에서 count는 조건을 만족하는 총 숫자를 갖게 됩니다.
-
카운트를 결과로 반환합니다.
예시
#include <bits/stdc++.h> using namespace std; int digitSum(int start, int end, int y){ int count = 0; int digsum = 0; for (int i = start; i <= end; i++){ int num=i; digsum=0; while(num>0){ digsum+=num%10; //sum of digits num=num/10; } if(digsum==y) //original number is i{ count++; //cout<<i<<" "; } } return count; } int main(){ int START = 100; int END = 1000; int Y = 5; cout <<"Numbers such that digit sum is equal to Y: "<<digitSum(START,END,Y); return 0; }
출력
위의 코드를 실행하면 다음 출력이 생성됩니다 -
Numbers such that digit sum is equal to Y: 15