3n + 1问题
#include "stdio.h" int main(void) { unsigned ix; short unsigned Data[10000],Max,D,U,i,Mlim; for( i = 1 ; i != 10000 ; i ++ ) { ix = i; Data[0] = 0; l1: Data[0] ++; if(ix != 1) { if((ix<<31)>>31) { ix = ((ix * 3) + 1); } else { ix = (ix >> 1); } goto l1; } Data[i] = Data[0]; } while((scanf("%u %u",&D,&U)) == 2) { Mlim = D < U ? U : D; Max = 0; for( i = (D < U ? D : U) ; i <= Mlim ; i ++ ) { Max = (Max < Data[i]) ? Data[i] : Max; } printf("%u %u %hd\n",D,U,Max); } return 0; }