Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++로 숫자의 각 자릿수 합계를 계산하는 프로그램

C++에서 입력받은 숫자의 각 자릿수를 모두 더한 합계를 계산하는 방법을 소개합니다. 아래는 이를 구현한 간단한 예제 코드입니다.

예제 코드

#include<iostream>
using namespace std;
int main() {
   int x, s = 0;
   cout << "Enter the number : ";
   cin >> x;
   while (x != 0) {
      s = s + x % 10;
      x = x / 10;
   }
   cout << "\nThe sum of the digits : "<< s;
}

실행 결과

Enter the number : 236214828
The sum of the digits : 36

코드 설명

위 프로그램에서는 두 개의 변수 xs를 선언하고, 합계를 저장할 변수 s는 0으로 초기화합니다. 사용자로부터 숫자를 입력받은 후, while 반복문을 사용하여 숫자가 0이 아닌 동안 각 자릿수를 추출해 합산합니다.

자릿수 추출의 핵심 원리는 다음과 같습니다.

  • x % 10 : 숫자를 10으로 나눈 나머지를 구하면 가장 마지막 자릿수(일의 자리)가 추출됩니다.
  • x / 10 : 숫자를 10으로 나누면 마지막 자릿수가 제거되어 다음 자릿수를 처리할 수 있습니다.

이 과정을 반복문 안에서 수행하면 모든 자릿수가 하나씩 추출되어 변수 s에 누적되며, x가 0이 되는 순간 반복문이 종료되고 최종 합계가 출력됩니다.

while (x != 0) {
   s = s + x % 10;
   x = x / 10;
}

예를 들어 입력값이 236214828인 경우, 각 자릿수인 2+3+6+2+1+4+8+2+8 = 36이 계산되어 출력됩니다. 이 알고리즘은 시간 복잡도가 O(log₁₀N)으로 매우 효율적이며, 정수형 범위 내의 어떤 숫자든 손쉽게 자릿수 합을 구할 수 있습니다.