연습문제/C# 연습문제
3. 숫자의 각 자릿수 더하기
규남
2023. 7. 23. 20:28
반응형
<소스 코드>
namespace Test
{
internal class Program
{
static void Main(string[] args)
{
// 각 자리수의 합 계산하기
// 1. 단순 계산 알고리즘으로 나타내기
int n = 1234;
int result = 0;
while (n > 0)
{
result += n % 10;
n = n / 10;
}
Console.WriteLine(result);
// 2. 배열을 이용한 계산
// 숫자를 문자열로 바꾼뒤에 각각의 문자는 해당 아스키 코드를
// 가지고 있으므로 (문자 - 문자)를 통해 실제 숫자로 바꿔준다.
// ('1' - '0') 은 아스키코드로 (49 - 48)이므로 1이 나온다.
// 이것을 (int)형으로 변환하면 숫자 1로 바뀐다.
// 만약 단순하게 생각해서 (int)num[i]로 적는다면
// 아스키코드 숫자인 49가 나와서
// 49를 (int)형으로 변환하면 숫자 49를 그대로 나온다.
// 그럼 1+2+3+4가 아니라 49+50+51+52 = 202라는 결과가 나온다
n = 1234;
result = 0;
string num = n.ToString();
for(int i = 0; i < num.Length; i++)
{
result += (int)num[i] - '0';
}
Console.WriteLine(result);
}
}
}
<결과 확인>
728x90
반응형