zoukankan      html  css  js  c++  java
  • [解题报告] The Collatz Sequence

    题目大意

    题目原文:http://uva.onlinejudge.org/external/6/694.pdf

    背景

    编写一个程序

    第 1 步:选择任意正整数A作为序列中的第一项。

    第 2 步:如果A = 1 然后停止。

    第 3 步:如果A为偶数,则替换A由A / 2,然后转到步骤 2。

    第 4 步:如果A为奇数,然后替换A由 A * A + 1,并转到步骤 2。

    这一问题的输入包含多个测试用例。每个案例中,输入包含两个正整数的单个行、 第一个是A 和第二个是L的初始值,L是限制值。其中, AL,既不是大于 2147483647 (可以存储在一个 32 位有符号整数的最大值)。初始的A值总是小于L,当A的值大于L的值时退出程序。当输入的值为负数时不进行计算。

     

    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的值。

    代码:这里附上我的代码,你可以去这里提交你的代码验证你的代码是否正确,

     1 #include<stdio.h>
     2 int main(void)
     3 {
     4     long long a,l,b;
     5     int num,n=0;
     6 
     7     while(scanf("%lld %lld",&a,&l)!=EOF)
     8     {
     9         num=0;
    10         b=a;
    11         if(a < 0||l < 0)break;
    12 
    13         while(a!=1)
    14         {
    15             if(a%2==0)
    16               {
    17                   a=a/2;
    18                   num++;
    19               }
    20             else
    21               {
    22                   a=3*a+1;
    23                   num++;
    24                   if(a > l)break;
    25               }
    26         }
    27         if(a==1)num++;
    28         n++;
    29         printf("Case %d: A = %lld, limit = %lld, number of terms = %d\n",n,b,l,num);
    30     }
    31     return 0;
    32 }
  • 相关阅读:
    做人方法论之---三省身
    大脑的作用
    SpEL 和 jquery 有点像
    Bootstrap 栅格系统
    JS 详解 Cookie、 LocalStorage 与 SessionStorage
    深度学习 机器学习 人工智能
    信息熵是怎样炼成的 | 纪念信息论之父香农
    最小熵原理(一):无监督学习的原理
    思维的基本形式、信息量与熵
    思维的本质是信息处理的过程
  • 原文地址:https://www.cnblogs.com/qisong178878915/p/2893489.html
Copyright © 2011-2022 走看看