#include <iostream>
using namespace std;
int main(void) {
ios::sync_with_stdio(0);
cin.tie(0);
int sum = 0;
int N;
cin >> N;
for (int i = 0; i < N; i++) {
char a;
cin >> a;
//a 값은 매 루프마다 갱신해주기
sum+= (a - '0'); //숫자로 저장
}
cout << sum;
return 0;
}
cin으로 int 숫자를 반복적으로 받으려면
cin >> a >> b >> c; 이런식으로 하려면 공백으로 구분을 해줘야 된다. (자리수가 다른 수의 구분을 위해서)
그러나 위와 같이 반복문 한 번 돌 때, 문자 하나를 받아서 숫자로 변환하고 합에다가 더해주면 공백으로 안 받아도 된다.
내 코드는 배열을 선언하지 않은 대신에,
반복문을 N번 만큼 돌릴 때, char형은 문자 하나만 받는 것을 이용하였다. 9를 누르면 문자 9를 인식하고, 12를 누르면 1과 2로 쪼개서 문자 2개로 인식한다.
다른 사람 코드
char형 배열 사용)char num[n];이라는 배열을 선언하고 num[i]-'0'해서 숫자로 바꿔주고 sum에 누적으로 저장
또는 string s;를 선언하고(문자열 관련)
s[i]-'0';을 하는 방법이 있다.
#include <iostream>
#include <string>
using namespace std;
int temp = 0;
int main() {
string a;
cin >> a;
for (int i = 0; i < a.size(); i++) {
temp += a[i] - '0';
}
return 0;
}
중간 연습 (0) | 2022.08.15 |
---|---|
10951, 10952 (0) | 2022.08.12 |
백준 class1)10951번 A+B-4 (0) | 2022.08.10 |
백준 class1)1008번 A/B (0) | 2022.08.10 |
백준 10951번 A+B-4 오답 (0) | 2022.08.10 |
댓글 영역