The Unknown Way

题解 UVA100 【The 3n + 1 problem】

一道比较坑很简单的模拟题(角谷猜想)

坑点如下

  1. i有可能大于j

  2. 循环读入

#include<algorithm>
#include<iostream>
#include<cstdio>
using namespace std;
int ans(int n)
{
    if(n==1)return 1;//递归
    else if(n%2==1)return 1+ans(3*n+1);
    else return 1+ans(n/2);
}
int main()
{
    int i,j,vmax;
    while(cin>>i>>j)//读入
    {
        vmax=-1;
        for(int k=min(i,j);k<=max(i,j);k++)
        {
            int tmp=ans(k);
            if(vmax<tmp)vmax=tmp;
        }
        cout<<i<<' '<<j<<' '<<vmax<<endl;
    }
    return 0;
}

2019-05-19 17:51:15 in 题解