2015年6月23日 星期二
2015年6月15日 星期一
3n+1
#include <stdio.h>
#include <stdlib.h>
#define swap(x,y) (x^=y,y^=x,x^=y)
int main()
{
unsigned long A, B;
while(scanf("%ld %ld", &A, &B) == 2)
{
printf("%ld %ld ", A, B);
if (A > B) swap(A,B);
unsigned long max = 0;
unsigned long i;
for(i = A; i <= B; i++)
{
unsigned long count, n;
for(count = 0, n = i;;)
{
count++;
if(n == 1) break;
n = (n%2==1)? 3*n+1 : n >> 1;
}
if(count >= max) max = count;
}
printf("%ld\n", max);
}
return 0;
}
訂閱:
文章 (Atom)