您的位置:首页 > 其它

【HDOJ】1032 -> The 3n + 1 problem

2013-08-13 22:01 393 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1032

心得:

        输入范围【a,b】注意判断是否满足b>=a,返回值也要保证a在b前。

代码:

#include <iostream>
using namespace std;

int f(int n){
int sum=1;
while(n!=1){
if(n%2==1) n=3*n+1;
else n/=2;
sum++;
}
return sum;
}

int main(){
int a,b,c,i,max,flag;
while(cin>>a>>b){
flag=0;
if(b<a){
c=a;a=b;b=c;
flag=1;
}
max=0;
for(i=a;i<=b;i++){
c=f(i);
if(c>max) max=c;
}
if(flag==1) {c=a;a=b;b=c;}
printf("%d %d %d\n",a,b,max);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: