U E D R , A S I H C RSS

3N+1 Problem/구자겸

~cpp 
#include <stdio.h>
int cycle_length(int n);			// cycle_length를 구하는 함수
void main()
{
	int i_num, j_num;				// 입력되는 두 정수
	int max = 0;					// 최대값을 0으로 잡는다
	scanf("%d %d", &i_num, &j_num);	// 두 정수를 받는다
	for ( ;i_num<j_num;i_num++ )	// 두 정수 사이의 정수의 cycle_length값중에
									// 최대값을 구한다
		max = max<cycle_length(i_num)?cycle_length(i_num):max;
	printf("%d\n", max);			// 최대값 출력
}

int cycle_length(int n)
{
	int count = 1;					// 카운터
	while ( n!=1 ) {
		if ( n%2!=0 )
			n = n*3+1;
		else n /= 2;
		count++;
	}
	return count;
}
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:22:16
Processing time 0.0128 sec