문제]
숫자 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;
}
참고풀이 결과]
대한민국의 아름다운 영토, 독도의 여름
'프로그램 > C++ 1000제' 카테고리의 다른 글
C++ 6제] 두 수를 입력받아 사칙 연산한 결과를 출력하시오. (0) | 2022.05.19 |
---|---|
C++ 5제] vector를 사용하여 입력된 두 수의 합을 구하는 프로그램을 작성하시오. (0) | 2022.05.18 |
C++ 4제] vector를 사용하여 1~10까지 출력하는 프로그램을 작성하시오. (0) | 2022.05.18 |
C++ 2제] 2019년 한국정보올림피아드 1차대회 초등부 1번 - 막대기 (0) | 2021.07.12 |
C++ 1제] 디폴트 매개변수를 사용하여 1~10까지 출력하는 프로그램을 작성하시오. (0) | 2021.07.01 |
댓글