The 3n + 1 problem,细节啊,细节
#include<iostream> #include<string> #include<cstring> using namespace std; int solve(int num) { int ji=0; while(num>1) { ji++; if(num%2==0)num/=2; else num=num*3+1; } return ji; } int main() { int n,m; while(cin>>n>>m) { if(n>m) { int M=0; for(int i=m;i<=n;i++) { if(solve(i)>=M)M=solve(i); } cout<<n<<" "<<m<<" "<<M+1<<endl; } else { int M=0; for(int i=n;i<=m;i++) { if(solve(i)>=M)M=solve(i); } cout<<n<<" "<<m<<" "<<M+1<<endl; } } return 0; }
i和j的大小可能不同,说实话这类题目完全为了比赛而出,没啥意思。
http://acm.hdu.edu.cn/showproblem.php?pid=1032