UVA-100 - The 3n + 1 problem

这题属于比较简单的题目(¯▽¯;)

解题步骤

  1. 先将i,j按照大小排好顺序
  2. 用迴圈从i到j依序判断最终变成1的次数,并将大于max的替换为max
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i,j,tim,I,max,count,c;
    while(scanf("%d %d",&i,&j)==2){
        max=0;
        //让j>i
        if(i>j){
            c=i;
            i=j;
            j=c;
        }
        //i到j依序判断,若次数比max多就替换
        for(tim=i;tim<=j;tim++){
            I=tim;
            count=0;
            while(I!=1){
                if(I%2==0)
                    I/=2;
                else if(I%2!=0)
                    I=3*I+1;
                count++;

            }
            if(max<count)
                max=count;
        }
        printf("%d %d %d",i,j,max+1);

    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值