개발자/C or C++
백준 11720번 [C/C+]
728x90
반응형
문제
해결 방법
이 문제는 입력으로 숫자를 문자열로 받아와서 이 숫자의 각 자리를 더하여 출력하면 되는 문제입니다,
문자열의 각 자리를 int형으로 변경하는 코드는 그냥 스킬로 알아두시면 좋을 것같습니다.
아스키코드표에서 숫자에서 문자 '0'을 빼면 정수가 나옵니다. 간단히 이해하시면 됩니다.
예를들어 문자 '1'의 아스키코드 번호는 49번이고 여기에서 '0'을 빼면 '0'의 아스키코드번호는 48번이므로
1이나옵니다.
소스코드
#include <stdio.h>
#include <stdlib.h>
#include <vector>
using namespace std;
int main(){
int N;
scanf("%d",&N);
char *input=(char *)malloc(sizeof(char)*N);
scanf("%s",input);
int sum=0;
int i=0;
int to_int;
for(i=0;i<N;i++){
to_int=input[i]-'0'; //char to int로 변경하는 코드
sum+=to_int;
}
printf("%d\n",sum);
return 0;
}
실행결과
반응형
'개발자 > C or C++' 카테고리의 다른 글
백준 2675번 [C/C+] (0) | 2021.10.05 |
---|---|
백준 10809번 [C/C+] (0) | 2021.10.05 |
백준 11654번 [C/C+] (0) | 2021.10.05 |
백준 15596번 [C/C+] (0) | 2021.10.05 |
백준 10996번 [C/C+] (0) | 2021.10.05 |
댓글