题解 UVA100 【The 3n + 1 problem】
Hemingway
2019-05-19 17:51:15
一道**比较坑**~~很简单~~的模拟题(角谷猜想)
坑点如下
1. i有可能大于j
2. 循环读入
~~~cpp
#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;
}
~~~