📄문제
탄소(C)와 수소(H)로만 이루어진 화합물을 탄화수소라고 합니다.
탄소(C) 한 개의 질량은 12g, 수소(H) 한 개의 질량은 1g입니다.
에틸렌(C2H4)의 질량은 12*2+1*4=28g입니다.
메탄(CH4)의 질량은 12*1+1*4=16g입니다.
탄화수소식이 주어지면 해당 화합물의 질량을 구하는 프로그램을 작성하세요.
⬇️ 입력
첫 줄에 탄화수소식이 주어집니다. 식의 형태는 CaHb 형태이며 (1<=a, b<=100)이다.
단, a 나 b 가 1이면 숫자가 식에 입력되지 않는다. 예) CH4
C2H4 |
⬆️ 출력
첫 줄에 탄화수소의 질량을 출력합니다.
28 |
📝 풀이
#include <iostream>
#include <string>
int main()
{
char input[9];
int digit = 1;
int val = 0;
int c = 0, h = 0;
scanf_s("%s", input, sizeof(input));
for (int i = 0; i < input[i] != '\0'; ++i)
if (input[i] == 'C')
{
for (int j = 1; ; ++i)
{
if (input[j + i] == 'H')
break;
c = c * 10 + input[j + i] - '0';
}
for (int j = 2; ; ++i)
{
if (input[j + i] == '\0')
break;
h = h * 10 + input[j + i] - '0';
}
}
if (c == 0)
c = 1;
if (h == 0)
h = 1;
printf("%d", c * 12 + h);
}
- 문자열 형태로 입력받고, 문자를 검사하여 'C' 또는 'H'일경우 다음 숫자를 가지고와 c, h 값에 그 크기만큼 가지고 옵니다.
- 한번도 숫자를 찾지 못하는경우에는 1로 설정한 후 c * 12 + h 공식대로 더하여 계산합니다.
'algorithms (C++)' 카테고리의 다른 글
[C++] 버블정렬 (1) | 2023.10.14 |
---|---|
[C++] 선택정렬 (1) | 2023.10.14 |
[C++] 3의 개수 (large) 🔥 (0) | 2023.10.14 |
[C++] 3의 개수 (small) (0) | 2023.10.14 |
[C++] N!에서 0의 개수 🔥 (0) | 2023.10.13 |