No older revisions available
No older revisions available
~cpp
//1. 3n+1문제 [[[[AOI스터디]]]]
#include<iostream.h>
int check(int n);
void main()
{
int n1; //입력받는 수1
int n2; //입력받는 수2
int max=0; //최대길이의 사이클 길이를 저장한다.
cout<<"적당한 두 수를 입력하세요 ( 단.n1<n2 )"<<endl;
cin>>n1;
cin.get();
cin>>n2;
int temp = n2;
for(int i= n2-n1 ; i >=0 ; i--)
{
if(check(temp)>max)
max = check(temp);
temp--;
}
cout<<"숫자"<<n1<<"과"<<n2<<"사이의 최대 사이클길이는"<<max<<"입니다."<<endl;
}
int check(int n)//사이클의 길이를 리턴하는 함수
{
int count = 1;//사이클의 길이 가진다
while(n!=1)
{
int temp = n%2;
if(temp==0)//temp값이 짝수라면..
n = n/2;
else //temp값이 홀수라면..
n = ((3*n)+1);
count++;
}
return count;
}