2007年10月21日 星期日

ACM V1 100

話說寫這個玩意 讓我死了不少腦細胞
常常就是認為沒錯 但就是少考慮了些什麼
給我的打擊不小, 看似非常簡單的小程式, 當你沒去注意一些小細節時, 你會失敗
也是我常常會犯的錯
從程式設計到做什麼事情都一樣
有些東西沒有說得很清楚, 例如人家給的規格
但你自己要去想到
從這個ACM test讓我領悟到不少東西 ^^


// ACM Voulme 1 100
// The 3n+1 problem


#include

using namespace std;

int iGetLength ( int num )
{
int iCircle_Length=1;

while ( num > 1 ){
if ( ( num % 2 ) == 0 ){
num = num / 2;
} else {
num = num * 3 + 1;
}
++iCircle_Length;
}

return iCircle_Length;
}


int main ()
{
int i,j,c;
int Max_Circle_Length;

while( cin >> i && cin >> j){

cout << i << " " << j << " ";

if ( i > j ){
c = j;
j = i;
i = c;
}

Max_Circle_Length = 0;

for ( int n = i; n <= j; ++n){
c = iGetLength( n );
if( c > Max_Circle_Length )
Max_Circle_Length=c;
}

cout << Max_Circle_Length << endl;
}

return 0;
}

沒有留言: