본문

[C언어] while문으로 1부터 n까지 홀수의 합계 구하는 예제

[C언어] while문으로 1부터 n까지 홀수의 합계 구하는 예제




문제


While 문을 이용하여 1 부터 사용자로 부터 입력받은 n까지의 수 중 홀수 더하여 합계를 출력한다.



소스


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h> 
 
int main() 
   int n = 0
   int i = 1
   int sum = 0
 
   printf ( "정수입력:" ); 
   scanf ( "%d"&n ); 
 
   while ( i <= n )  // n수까지 반복
   { 
      if ( i % 2 == 1 ) // 2로 나누어 나머지가 1인 
      { 
         sum += i; 
      } 
      i++;
   } 
 
   printf ( "%d", sum ); 
 
   return 0
}  
cs


요약


이 문제에서 가장 중요한 포인트는 홀 수를 구하는 것이다.

홀수를 구하려면 어떻게 해야할까?

알고나면 너무 쉬운 문제지만 처음엔 당환하게 된다.

C언어에는 나누기 말고 나머지를 구하는 연산자가 있다.


그것이 바로 "%" 연산자 이다.

모든 수는 2로 나누어 나머지가 0이면 짝수, 나머지가 1이면 홀수라고 할 수 있다.

이것을 이용하여 홀수를 구하고 while문으로 반복하여 합계를 구한다.


14번째 줄이 바로 홀수인가 검사하는 조건문이다.

반대로 짝수만 합계를 구하고 싶다면 어떻게 하면 될까?


이미 눈치 빠른 사람은 알겠지만 반대로 나머지가 0인 수만 더하면 된다.

14번째 줄에서 if( i % 2  == 0 ) 으로만 수정하면 짝수의 값만 더하여 합계를 낸다.


알고보면 쉬운 나머지 연산자!

댓글