문제
N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.
출력
입력으로 주어진 숫자 N개의 합을 출력한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#include <iostream>
using namespace std;
int main()
{
int n; // 숫자의 갯수
char ch;
cin >> n;
int total = 0;
for (int i = 0; i < n; i++)
{
cin >> ch;
total += ch - 48; // char형으로 받았으므로, 아스키코드 '0'의 값, 48을 빼줌
}
cout << total << endl;
return 0;
}
|
위 코드가 정답이지만
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#include <iostream>
using namespace std;
int main() {
while (1) {
unsigned int count;
cin >> count;
unsigned int n;
cin >> n;
unsigned int sum = 0;
unsigned int i = 1;
for (int j = count - 1; j > 0; j--)
i *= 10;
for (; count > 0 && n > 0; count--, i /= 10) {
sum += n / i;
n -= (n / i) * i;
}
cout << sum << endl;
}
}
|
나누기를 이용한 방법도 있다
'백준' 카테고리의 다른 글
C++ 백준 알고리즘 5585번 거스름돈 풀이 (0) | 2020.03.08 |
---|---|
C++ 백준 알고리즘 11047번 동전 0 풀이 (0) | 2020.03.07 |
C++ 백준 알고리즘 11399번 ATM 풀이 (0) | 2020.03.06 |