https://www.acmicpc.net/problem/11720
숫자들이 예의없이 공백도 없이 붙어있는, 사실상 큰 숫자 하나를 입력받아서 각 자릿수의 합을 더하는것과 같다.
그런데 문제는 input인 숫자의 자릿수가 최대 100이라는 것이다.
때문에 long long 까지 해봐야 이 큰 숫자를 감당할 수 없다.
그래서 이 숫자를 char형으로 각각 하나씩 입력받는 방법을 사용한다.
1) char형 변수에 입력 → int형으로 변환(ASCII 코드) → 0~9는 ASCII에서 48~57이기 때문에 48씩 빼서 더해준다.
<<코드>>
#include <iostream>
using namespace std;
int main() {
//ASCII CODE 48~57 : 0~9
int num;
int result=0;
cin >> num;
int* numList = new int[num];
char ch;
for (int i =0; i < num; i++){
cin >> ch;
numList[i] = ch;
}
for(int k =0; k < num; k++){
result += (int(numList[k])-48);
}
cout << result << "\n";
delete[] numList;
}
아슼히 코드가 참 유용하네
< 백준 BaekJoon : 2675번 문자열 반복 > C++ (0) | 2021.10.04 |
---|---|
< 백준 BaekJoon : 10809번 알파벳 찾기 > C++ (0) | 2021.10.04 |
< 백준 BaekJoon : 11654번 아스키코드 > C++ (0) | 2021.10.01 |
< 백준 BaekJoon : 15596번 정수 N개의 합 > C++ (0) | 2021.10.01 |
< 백준 BaekJoon : 4673번 셀프 넘버 > C++ (0) | 2021.09.25 |
댓글 영역