zoukankan      html  css  js  c++  java
  • [没分] TyvjBegin P1039 Begin2 – Unit 1 3n+1问题

    描述 Description

      考虑如下序列的生成算法:从整数n开始,如果n是偶数,把他除以2;如果他是奇数,把他乘3加1。用新得到的值重复上面的步骤,知道n=1为止。例如n=22时,这个算法的生成序列是:
      22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
      人们猜想(没有证明)对于任意的整数n,该算法总能得到终止于n=1。这个猜想至少对于1000000以内的数都正确。
      对于给定的n,该序列的元素(包括1)个数称之为n的循环节长度。例如上例中循环节长度为16。

    输入格式 Input Format

    输入两个数i,j,你的任务是计算i到j(包含i和j),之间的整数中,循环节长度最大的值
    并且有多组数据!
    0<所有整数<=1000000

    输出格式 Output Format

    对于每对整数i,j,输出原来的i,j和循环节最大的长度

    样例输入 Sample Input

    1 10

    100 200

    201 210

    900 1000

    样例输出 Sample Output

    1 10 20

    100 200 125

    201 210 89

    900 1000 174

    时间限制 Time Limitation

    各个测试点2s

    program b1039;
     var
      i,k,n:longint;
      a,b,c:array[1..1000]of longint;
     procedure digui(p:longint);
      begin
       if p=1 then exit
        else if (p mod 2 = 0) then
         begin
          digui(trunc(p / 2));
          inc(n);
         end
        else
         begin
          digui(p*3+1);
          inc(n);
         end;
      end;
     function go(x:longint):longint;
      begin
       n := 1;
       digui(x);
       go := n;
      end;
     begin
      for i := 1 to 1000 do c[i]:=0;
      k:=1;
      while not eof do
       begin
        read (a[k],b[k]);
        for i := a[k] to b[k] do
         if go(i) > c[k] then c[k] := go(i);
        inc(k);
      end;
      for i := 1 to k-2 do
        writeln (a[i],' ',b[i],' ',c[i]);
      write (a[k-1],' ',b[k-1],' ',c[k-1]);
     end.
    

    程序写的没问题,朴素模拟版。。然而。。。

     

    VijosNT Mini 2.0.5.6
    Free Pascal Compiler version 2.4.2 [2010/11/10] for i386
    Copyright (c) 1993-2010 by Florian Klaempfl
    Target OS: Win32 for i386
    Compiling foo.pas
    Linking foo.exe
    38 lines compiled, 0.0 sec , 29440 bytes code, 1544 bytes data
    #01: Runtime Error (0ms, 632KB)
    读取访问违规, 地址: 0x00000004
    #02: Runtime Error (0ms, 632KB)
    读取访问违规, 地址: 0x00000004
    #03: Runtime Error (0ms, 632KB)
    读取访问违规, 地址: 0x00000004
    #04: Runtime Error (0ms, 632KB)
    读取访问违规, 地址: 0x00000004
    #05: Runtime Error (0ms, 632KB)
    读取访问违规, 地址: 0x00000004
    #06: Runtime Error (0ms, 632KB)
    读取访问违规, 地址: 0x00000004
    #07: Runtime Error (0ms, 632KB)
    读取访问违规, 地址: 0x00000004
    #08: Runtime Error (0ms, 632KB)
    读取访问违规, 地址: 0x00000004
    #09: Runtime Error (0ms, 632KB)
    读取访问违规, 地址: 0x00000004
    #10: Runtime Error (0ms, 632KB)
    读取访问违规, 地址: 0x00000004
    Runtime Error / 0 / 0ms / 0KB

     

    对此,我只想说:去XXX的记忆化搜索!!哥不会,满意了吧!!!

  • 相关阅读:
    MySQL——sql语句处理时间——时间、字符串、时间戳互相转换
    MySQL——sql语句处理时间——日期加减天数
    Spring Boot——jpaProperties.getHibernateProperties()的使用
    Spring Boot——SpringBoot2+JPA+druid配置多数据源
    Spring Boot——log4j日志配置案例
    git命令——git 分支操作
    windows如何删除默认打开方式
    excel导出出现弹框
    笔记
    javascript中三个等号"==="是什么意思
  • 原文地址:https://www.cnblogs.com/yachen/p/1943504.html
Copyright © 2011-2022 走看看