现在的位置: 首页 > 综合 > 正文

POJ1207

2019年09月12日 ⁄ 综合 ⁄ 共 372字 ⁄ 字号 评论关闭

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;
}

 

抱歉!评论已关闭.