NYOJ 271 The 3n + 1 problem
这题和hdu 1032一样,令人郁闷的是在hdu ac的代码拿到nyoj就TLE了,然后果断加上打表,就过了。
附ac代码:
#include <stdio.h> #define MAX 10001 int a[MAX]; int len( int n ){ int i = 1; while( n != 1 ){ if( n & 1 ) n = 3 * n + 1; else n >>= 1; ++i; } return i; } void CountA(){ for(int i = 1; i != MAX; ++i) a[i] = len(i); } int main(){ CountA(); int i, j, maxlen, ii, jj; while( scanf( "%d%d", &i, &j ) == 2 ){ i < j ? ( ii = i, jj = j ) : ( ii = j, jj = i ); maxlen = 0; while( ii <= jj ){ int t = a[ii++]; if( t > maxlen ) maxlen = t; } printf( "%d %d %d\n", i, j, maxlen ); } return 0; }