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

UVa 100 – The 3n + 1 problem 水题

2018年09月23日 ⁄ 综合 ⁄ 共 510字 ⁄ 字号 评论关闭

第一次在UVa上提交题,WA了几次,囧,全是英文,啊。因为木有考虑a和b的大小问题,还有输出a和b的顺序。( ̄ε(# ̄)

题目链接:100 - The 3n + 1 problem

题目大意:例子的意思是,输入一个数,如果这个数是奇数,则执行n=3*n+1,否则n=n/2,直到n=1,计算这个数一直到1一共计算了几步,即为sum;

                  输入a,b两个数,输出 a至b之间所有sum的最大值max。

# include <stdio.h>
int main()
{
    int a,b,a_back,b_back,i,t,n,sum,max;
    while(scanf("%d %d",&a,&b)!=EOF)
    {
        max=0;
        a_back=a;
        b_back=b;
        if(a>b)
        {
            a_back=b;
            b_back=a;
        }
        for(i=a_back;i<=b_back;i++)
        {
            sum=1;
            n=i;
            while(n>1)
            {
                if(n%2==0)
                {
                    n=n/2;
                }
                else
                {
                    n=3*n+1;
                }
                sum++;
            }
            if(max<sum)
            {
                t=max;
                max=sum;
                sum=t;
            }
        }
        printf("%d %d %d\n",a,b,max);
    }
    return 0;
}



抱歉!评论已关闭.