๋ชฉ์ฐจ
๋ฌธ์
๋ฌธ์์ด์ ์ ๋ ฅ๋ฐ์์ ๋ ๊ทธ ์์ ์กด์ฌํ๋ ์ซ์์ ์ด ํฉ์ ๊ณ์ฐํ๊ธฐ
์ ๋ ฅ ์์
A1h2#9
์ถ๋ ฅ ์์
12
์ฝ๋
#include <stdio.h>
#include <string.h>
int SSum(char str) {
static int diff = 1 - '1';
return str + diff;
}
int main() {
char str[50];
int len;
int sum = 0;
printf("๋ฌธ์์ด ์
๋ ฅ: ");
fgets(str, sizeof(str), stdin);
len = strlen(str);
for (int i = 0; i < len; i++)
{
if (str[i] >= '1' && str[i] <= '9')
sum += SSum(str[i]);
}
printf("์ดํฉ: %d\n", sum);
return 0;
}
์ฝ๋ฉํธ
๋ฌธ์์ด ๋ด์์ ์ซ์๋ฅผ ์ฐพ๋ ๋ฐฉ๋ฒ์ผ๋ก
์์คํค์ฝ๋๋ฅผ ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ค.
๋น๊ต์ฐ์ฐ์๋ฅผ ์ด์ฉํด ๋ฌธ์ '1'~'9' ๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค๊ณ ์กฐ๊ฑด์ ๊ฑธ์์ ๋
True๋ผ๋ฉด ๋ฌธ์๋ก 1~9 ์ธ ๊ฒ์ด๋ค.
์ด์ด์, '1'์ ์์คํค์ฝ๋๋ 49๋ฒ์ด๋ค.
1-'1' ์ ์ฐ์ฐ์ -48์ด๋ค. (1-'1' == 1 - 49)
2-'2' ์ ์ฐ์ฐ๋ -48์ด๋ค. (2-'2' == 2- 50)
์ฆ, n์ด ํ์๋ฆฌ ์ซ์์ผ ๋
์ซ์ n๊ณผ ๋ฌธ์ 'n'์ ์ฐจ๋ ํญ์ ์ผ์ ํ๋ค.
์ด๋ฅผ '์ฐจ'๋ฅผ diff๋ผ๋ ๋ณ์์ ์ ์ฅํ์ฌ
๋ฌธ์'1'~'9'์ธ ๊ฒฝ์ฐ diff๋งํผ ๋ํด์ค๋ค.
๊ทธ ๊ฒฐ๊ณผ ๋ฌธ์๊ฐ ์ซ์๋ก ๋ณํ์ด ๋๋ค.
์ด๋ฅผ ๋ชจ๋ ๋ํ์ฌ ๊ฐ์ ์ป์ด๋ด์๋ค.
'๐ฆ | ์ฝ๋ฉํ ์คํธ ์ฐ์ต > ๊ทธ ์ธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ค์ฑ์ฐ ์ดํ C ๋์ ํ๋ก๊ทธ๋๋ฐ 3 - 2 (0) | 2021.12.21 |
---|
๋๊ธ