UVA - 694 The Collatz Sequence(水题)
2014-08-22 18:34
429 查看
The Collatz Sequence |
Input
The input for this problem consists of multiple test cases. For each case, the input contains a single line with two positive integers, the first giving the initial value of A (for step 1) and the second giving L, the limiting value for terms in the sequence. Neither of these, A or L, is larger than 2,147,483,647 (the largest value that can be stored in a 32-bit signed integer). The initial value of A is always less than L. A line that contains two negative integers follows the last case.Output
For each input case display the case number (sequentially numbered starting with 1), a colon, the initial value for A, the limiting value L, and the number of terms computed.Sample Input
3 100 34 100 75 250 27 2147483647 101 304 101 303 -1 -1
Sample Output
Case 1: A = 3, limit = 100, number of terms = 8 Case 2: A = 34, limit = 100, number of terms = 14 Case 3: A = 75, limit = 250, number of terms = 3 Case 4: A = 27, limit = 2147483647, number of terms = 112 Case 5: A = 101, limit = 304, number of terms = 26 Case 6: A = 101, limit = 303, number of terms = 1
题目大意:
输入两个数A和L,按照以下进行循环运算,问最后结束循环时一共进行了多少次运算?若A为1或者A>L,则推出。若A为偶数,则A=A/2。若A为奇数,则A=3*A+1。注意:最后的1也算一项。如果某个A>limit,那么此项不计入。3*A+1很可能会溢出,所以要用long long进行保存。
#include <stdio.h>int main() { long long a,l,t; int cnt,cas = 1; while(scanf("%lld%lld",&a,&l) != EOF) { if(a == -1 && l == -1) { break; } cnt = 0; t = a; while( a != 1 && a <= l) { if(a % 2 == 0) { a = a / 2; }else if(a % 2 == 1) { a = 3 * a + 1; } cnt++; } if(a == 1) { cnt++; } printf("Case %d: A = %lld, limit = %lld, number of terms = %d\n",cas++,t,l,cnt); } return 0;}
相关文章推荐
- uva694 The Collatz Sequence
- UVa694 - The Collatz Sequence(模拟)
- uva694 The Collatz Sequence
- UVa 694 The Collatz Sequence
- UVa 694 The Collatz Sequence(序列)
- UVa 694 - The Collatz Sequence
- UVA 694 - The Collatz Sequence
- UVA 694-The Collatz Sequence
- UVa 694 - The Collatz Sequence
- UVA - 694 - The Collatz Sequence
- UVA 694 The Collatz Sequence
- UVa 694 The Collatz Sequence (数论)
- uva694 The Collatz Sequence
- UVa 694 - The Collatz Sequence
- UVa 694 - The Collatz Sequence
- uva-694 - The Collatz Sequence
- UVA694 UVALive5466 The Collatz Sequence【模拟】
- UVa694 The Collatz Sequence
- UVa 694 The Collatz Sequence
- UVa_694 - The Collatz Sequence