각자리 수 더하기 문제

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
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기