본문 바로가기
프로그램/C++ 1000제

C++ 3제] 숫자 N을 입력하여 각 자리수의 합을 구하는 프로그램을 작성하시오.

by 건티 2021. 7. 29.
728x90

문제]

숫자 N(1<=N<=2147483647)을 입력하여 각 자리수의 합을 구하는 프로그램을 작성하시오.

입력예1]
2147483647

출력예1]
46


입력예2]
1999999999

출력예2]
82


입력예3]
2147483648

출력예3]



입력예4]
12345

출력예4]
15

 

 

 

참고풀이]

#include <iostream>
using namespace std;

//짝수자리수의 합을 구하는 함수.
int Sum_Process(string S, int N)
{
   int H = 0;
   for (int i = 0;i < N / 2;i++)
   {
      H += (S.at(i) - '0');
      H += (S.at(S.length() / 2 + i) - '0');
   }

   return H;
}

int main()
{
   int Sum;
   string MS;

   //문숫자열을 입력받는다.
   cin >> MS;

   if (MS >= "1" && MS <= "2147483647")
   {
      Sum = 0;
      //문숫자열의 각 자리수들의 합을 구한다.
      Sum = (MS.length() % 2 == 0) ? Sum_Process(MS, MS.length())
         : Sum_Process(MS, MS.length() - 1) + (MS.at(MS.length() - 1) - '0');

      //결과 출력.
      cout << Sum;
   }
   return 0;
}

 

참고풀이 결과]

 

 

 

대한민국의 아름다운 영토, 독도의 여름

 

반응형

댓글