3n+1 (数据链路问题 数论)-----hdu

//数据链路问题;出了一点错误,吧int给位longlong,就会到时tle 

#include <stdio.h>
int compute(int  value){
	int time = 1;
	while(value != 1){
		if(value %2 == 0)
		     //value >>= 1;
		     value = value/2;  //all accept
		else
		    value = 3*value+1;	//value+= (value+1)>>1;value 为技术,所以经过 3*value+1,必为偶数,所以直接在这不除以2,减少一步,再进行运算
time++; } return time; } int main(){ int a,b,i,time,maxtime,begin,end; while(scanf("%d %d",&a,&b) != EOF){ getchar(); time = maxtime = 0; if(a > b){ begin = b,end = a; }else{ begin = a,end = b; } for(i = begin;i<=end;i++){ time = compute(i); if(time > maxtime) maxtime = time; } printf("%d %d %d\n",a,b,maxtime); } return 0; }

  

posted on 2014-11-26 16:03  lzm420241  阅读(180)  评论(2)    收藏  举报

导航