首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

hdu 1032 The 3n + 一 problem

2012-09-20 
hdu 1032 The 3n + 1 problem看题目请点这里题意:给你2个整数min和max(若minmax要交换2个的否则会wa),让

hdu 1032 The 3n + 1 problem

看题目请点这里

题意:

给你2个整数min和max(若min>max要交换2个的值否则会wa),让你求出在[min,max]里的所整数的最大操作次数。

操作规则如下(data为[min,max]里的一个整数):

如果data为奇数且不等于1:data=3*data+1,否则data=data/2,当data=1时本轮操作结束。

记下min到max这些数里的最大操作次数。

代码:

#include<stdio.h>int main(){    int min,max,ans,data,num,i;    while(scanf("%d%d",&min,&max)!=EOF)    {        printf("%d %d",min,max);        if(min>max)        {            max^=min^=max^=min;   //交换min、max的值        }        for(ans=1,i=min;i<=max;i++)        {            num=1;            data=i;            while(data!=1)            {                data=((data&1)==0?data>>1:3*data+1);                num++;   //记下data变为1要多少次操作            }if(num>ans){ans=num;   //记下min到max这些数的里最大操作次数}        }        printf(" %d\n",ans);    }    return 0;}


热点排行