2014年8月31日星期日

[UVa] 694 - The Collatz Sequence


#include <stdio.h>
long long A,L; //避免乘法溢出
int cases=0;
int main(){
  while(scanf("%lld %lld",&A,&L)!=EOF&&A>0&&L>0){ //在UVa中,要用lld才行
    cases++;
    printf("Case %d: A = %lld, limit = %lld, ",cases,A,L);
    int count=0;
    while(1){
   if(A>L){
     break;
   }
   if(A==1){
     count++;
     break;
   }
   else if(A%2==0){
     A=A/2;
  count++;
   }else{
     A=A*3+1;
  count++;
   }
 }
 printf("number of terms = %d\n",count);
 
  }
  return 0;
} 

沒有留言: