2009~2014/C/C++
[C언어 기출문제&풀이] 3n+1 문제
malu
2010. 7. 15. 17:45
정수를 입력으로 받아,
풀이 : 문제의 조건대로 짝수면 2로 나누고 홀수면 3배해서 1을 더하는 루프를 코딩한다.
소스파일
-------------------------------------------------------------
------------------------------------------------------------
- 짝수이면 2 로 나누고 , 홀수이면 3 배해서 1 을 더함
- 1 이 될 때 까지 반복
6 이 입력으로 주어지면
6 3 10 5 16 8 4 2 1
입력
1000 이하의 자연수가 입력으로 주어진다.출력
공백 한자리로 수를 구분한다.입출력 예
입력 4 출력 4 2 1 입력 6 출력 6 3 10 5 16 8 4 2 1
풀이 : 문제의 조건대로 짝수면 2로 나누고 홀수면 3배해서 1을 더하는 루프를 코딩한다.
소스파일
-------------------------------------------------------------
01 |
#include <stdio.h> |
02 |
|
03 |
int main() |
04 |
{ |
05 |
int n; |
06 |
scanf ( "%d" ,&n); |
07 |
for (;;) |
08 |
{ |
09 |
printf ( "%d " ,n); |
10 |
if (n==1) |
11 |
break ; |
12 |
if ((n%2)==0) |
13 |
n=n/2; |
14 |
else if ((n%2)!=0) |
15 |
n=n*3+1; |
16 |
} |
17 |
} |
------------------------------------------------------------