각자리 수 더하기 문제
ex) 123 -> 8로 만들려면?
각각의 자리를 더해주어야 한다.
while문과 for 문 두가지로 작성해 보겠다.
1.while(true) 문 작성
static void Main(string[] args)
{
Console.WriteLine("Put your number :");
int inputNumber = int.Parse(Console.ReadLine());
int result = 0;
while (true)
{
result += inputNumber % 10;
inputNumber = inputNumber / 10;
if (inputNumber == 0)
{
break;
}
}
Console.WriteLine($"Add Each Number : {result}");
}
while 문을 통해서 숫자가 들어오면 나머지 값들을 저장할 곳을 만들어 거기에 더해주고 이후, result값에 더해주었다 그리고 반복문을 통해서 한자리씩 제거.
2. for 문을 사용한다면
static void Main(string[] args)
{
Console.WriteLine("Put your number :");
int inputNumber = int.Parse(Console.ReadLine());
double inputNumberLength = (Math.Log10(inputNumber) + 1);
inputNumberLength = (int)inputNumberLength;
int result = 0;
for (int i = 0; i < inputNumberLength; ++i)
{
result += inputNumber % 10;
inputNumber = inputNumber / 10;
}
Console.WriteLine($"Add Each Number : {result}");
}
위에서 while문과 조금 다른점이 있다면 log10 을 통해서 숫자 길이를 구해서 그만큼 for문을 돌린점이다.
728x90
최근댓글