2011年12月17日 星期六

C ACM 100 : The 3n + 1 problem

原文題目:http://acm.uva.es/p/v1/100.html
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int i,j;

    int number1;
    int number2;
    printf("please number 1 and number 2:");
    scanf("%d %d",&number1,&number2);
   
    i =compare(number1,number2);
    printf("%d,%d,%d",number1,number2,i);
    system("pause");   
}

int compare(int number1,int number2)
{
   int times;
   int h,low,upper;
   int max =0;
   int number;
   if(number1>number2)
   {
    low=number2;
    upper=number1;
  }
  else
    {
       upper=number2;
       low=number1;       
     }
   for(h=low;h<=upper;h++)
   {
       times=1;
       number=h;
        while(number!=1)
       {
         times++;
        if(number%2==1)
          number = number*3+1;
        else                  
          number = number/2;            
       }
       if(times>=max)
          max=times;
   }  
  return max;
}

沒有留言:

張貼留言