读书人

uva_100 - The 3n + 一 problem

发布时间: 2012-11-12 12:31:58 作者: rapoo

uva_100 - The 3n + 1 problem

/**这道题有一个陷阱,那就是输入的闭区间不一定是a<=b,可能a>b,而且输出时的闭区间顺序要和输入的顺序一样*/
#include <cstdio>#include <algorithm>using namespace std;int fun(int n) {    int num(1);    while(n>1) {        num++;        if(n%2!=0) {            n = 3*n+1;            continue;        }        n /= 2;    }    return num;}int main() {    int a, b;    int maxn;    while(~scanf("%d %d",&a,&b)) {        maxn = 0;        int a1=a,b1=b;        if(a>b) swap(a,b);        for(int i=a; i<=b; i++)            maxn = max(maxn, fun(i));        printf("%d %d %d\n",a1,b1,maxn);    }    return 0;}


读书人网 >编程

热点推荐