HDU 1032 The 3n + 1 problem

还以为要递归推一推的

结果暴力就过了

要注意 i,j 大小

 1 #include <iostream>
 2 using namespace std;
 3 int a,b;
 4 long long cnt,n,ans;
 5 int main()
 6 {
 7     while(~scanf("%d%d",&a,&b))
 8     {
 9         ans=0;
10         int p=a,q=b;
11         if(p>q) swap(p,q);
12         for(int i=p;i<=q;i++)
13         {
14             cnt=0;
15             n=i;
16             while(1)
17             {
18                 cnt++;
19                 if(n==1) break;
20                 if(n%2) n=3*n+1;
21                 else n/=2;
22             }
23             if(cnt>ans) ans=cnt;
24         }
25         printf("%d %d %ld\n",a,b,ans);
26     }
27 }
28 //dp[i]=dp[3*i+1]+1;
29 //dp[i]=dp[i/2]+1;

 

posted @ 2016-04-29 15:37  nicetomeetu  阅读(137)  评论(0编辑  收藏  举报