UVA 100

本题从小到大依次算出每个数的所需步骤,然后保留最大的步骤数,这是暴力代码,打表正在学习中……http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=36

View Code
 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 int main()
 4 {
 5  int i,b,a,temp,n,m,j;
 6  while(scanf("%d%d",&a,&b)!=EOF)
 7       {
 8        printf("%d %d ",a,b);
 9        n=1;
10        m=1;
11        if(a>b)
12          {
13           temp=a;
14           a=b;
15           b=temp;//如果没按顺序输入的话要先调整顺序
16          }
17          j=a;
18          while(j!=1)
19               {
20                if(j%2==1)
21                  j=3*j+1;
22                else if(j%2==0) j=j/2;
23                n++;//先给定一个n
24               }
25        for(i=a+1;i<=b;i++)
26           {
27            j=i;
28            while(j!=1)
29               {
30                if(j%2==1)
31                  j=3*j+1;
32                else if(j%2==0) j=j/2;
33                m++;
34               }
35            if(m>n)
36                n=m;//如果后一个比前一个大   那就交换
37             m=1;  
38           }
39        printf("%d\n",n);
40       }
41  return 0;
42 } 

 

posted @ 2013-02-18 11:04  执着追求的IT小小鸟  阅读(112)  评论(0编辑  收藏  举报