今天做UVa694 - The Collatz Sequence,AC程序如下:
#include <stdio.h>
int main()
{
long int A,L,value;
int count,Case=0;
while(scanf("%ld%ld", &A, &L) == 2 && A > 0 && L > 0)
{
Case++;
count = 0;
value = A;
while(value != 1)
{
if(value > L)
break;
else if(value % 2)
{ value = value * 3 + 1; count++; }
else { value = value / 2; count++; }
}
if(value == 1)
count++;
printf("Case %d: A = %ld, limit = %ld, number of terms = %d\n", Case, A, L, count);
}
return 0;
}
第一次提交时将A和L设置为int,出现了Time limit exceeded问题,将它们改成long int 就可以通过了。