이 튜토리얼에서는 숫자를 포함하는 일부가 주어진 숫자 N과 같은 숫자를 찾을 것입니다.
아이디어는 간단합니다. 주어진 숫자의 왼쪽과 오른쪽 100개의 숫자를 확인하겠습니다. N ≤ 1000000000으로 경계를 나타내지 않으며 합계는 100을 초과하지 않습니다.
문제를 해결하는 단계를 살펴보겠습니다.
-
번호를 초기화합니다.
-
100번 반복하는 루프를 작성하십시오.
-
n - i 및 n + i 값을 가져옵니다.
-
숫자의 합을 찾아 더하세요.
-
N과 같은 사람이 있으면 인쇄하십시오.
-
예시
코드를 봅시다.
#include <bits/stdc++.h>
using namespace std;
int digitsSum(int n) {
int sum = 0;
while (n) {
sum += n % 10;
n /= 10;
}
return sum;
}
void findX(long int n) {
bool is_found = false;
for (int i = 0; i <= 100; i++) {
long int valueOnLeft = abs(n - i) + digitsSum(abs(n - i));
long int valueOnRight = n + i + digitsSum(n + i);
if (valueOnLeft == n) {
is_found = true;
cout << abs(n - i) << " ";
}
if (valueOnRight == n) {
is_found = true;
cout << (n + i) << " ";
}
}
if (!is_found) {
cout << "No numbers found";
}
cout << endl;
}
int main() {
int n = 89;
findX(n);
return 0;
} 출력
위의 프로그램을 실행하면 다음과 같은 결과를 얻을 수 있습니다.
76
결론
튜토리얼에서 질문이 있는 경우 댓글 섹션에 언급하세요.