• [没分] 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的记忆化搜索!!哥不会,满意了吧!!!

  • 相关阅读:
    丁子鸣-第一次个人编程作业
    丁子鸣---第一次个人作业
    How U.S. Stock Prices Correlate to the Value of the U.S. Dollar 美股价格和美元价值的关联
    在win10上WSL怎么显示GUI
    android 6.0.1 compiling
    Python Virtual Environments: A Primer
    ubuntu stardict 字典
    opencv Functionality Overview
    msm-v2 7af6000.i2c: error Missing 'i2c' DT entry
    Bash Shortcuts For Maximum Productivity
  • 原文地址:https://www.cnblogs.com/yachen/p/1943504.html
Copyright © 2020-2023  润新知