专栏首页Jerry的SAP技术分享使用ABAP内表作为数据结构实现非波拉契数列(fibonacci)的生成

使用ABAP内表作为数据结构实现非波拉契数列(fibonacci)的生成

*&---------------------------------------------------------------------*
*TODO: Jerry can send Xun about new implementation on 2016-12-4 21:17PM - aircraft from Germany to China
*&---------------------------------------------------------------------*

REPORT Z_FIBO.
PARAMETERS: N type i,
            v1 RADIOBUTTON GROUP v default 'X',
            v2 RADIOBUTTON GROUP v.

data: f type i,
      t type i.

data: product_guid type comm_product-product_guid.

get run time field t.
case 'X'.
  when v1. perform fibonacci using n changing f.
  when v2. perform fibonacci_2 using n changing f.
endcase.
write: / 'Fibonacci(', n, ') =', f.
get run time field t.
write: / 'Runtime', t, 'microseconds'.

*&---------------------------------------------------------------------*
*&      Form  fibonacci
*&---------------------------------------------------------------------*
form fibonacci using in type i
               changing fib type i.
  data: f_1 type i, f_2 type i,
        n_1 type i, n_2 type i.
  case in.
    when 0. fib = 1.
    when 1. fib = 1.
    when others.
      n_1 = in - 1.
      n_2 = in - 2.
      perform fibonacci using n_1 changing f_1.
      perform fibonacci using n_2 changing f_2.
      fib = f_1 + f_2.
  endcase.
endform.                    "fibonacci

*&---------------------------------------------------------------------*
*&      Form  fibonacci_2
*&---------------------------------------------------------------------*
form fibonacci_2 using in type i
                 changing fib type i.
  data: f_1 type i, f_2 type i,
        n_1 type i, n_2 type i,
        l type i.
  data: fibo type table of i.
  append 1 to fibo. " fibonacci(0)
  append 1 to fibo. " fibonacci(1)
    n_1 = 1.
    n_2 = 2.
  l = in - 1.
  do l times.
    read table fibo index n_1 into f_1.
    read table fibo index n_2 into f_2.
    fib = f_1 + f_2.
    add 1 to n_1. add 1 to n_2.
    append fib to fibo.
  enddo.
endform.                    "fibonacci_2

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何在ABAP里用函数式编程思想打印出非波拉契Fibonacci(数列)

    在JavaScript里可以用ES6提供的FunctionGenerator这种黑科技来打印非波拉契数列,具体细节参考我这篇文章。

    Jerry Wang
  • 如何在ABAP里用函数式编程思想打印出非波拉契Fibonacci(数列)

    在JavaScript里可以用ES6提供的FunctionGenerator这种黑科技来打印非波拉契数列,具体细节参考我这篇文章。

    Jerry Wang
  • 使用outlet在SAP Spartacus中添加自定义UI

    Just a simple piece of code to inject your custom UI element to SAP Spartacus vi...

    Jerry Wang
  • 如何在ABAP里用函数式编程思想打印出非波拉契Fibonacci(数列)

    在JavaScript里可以用ES6提供的FunctionGenerator这种黑科技来打印非波拉契数列,具体细节参考我这篇文章。

    Jerry Wang
  • 如何在ABAP里用函数式编程思想打印出非波拉契Fibonacci(数列)

    在JavaScript里可以用ES6提供的FunctionGenerator这种黑科技来打印非波拉契数列,具体细节参考我这篇文章。

    Jerry Wang
  • 内网渗透实验:基于Cobaltstrike的一系列实验

    去年年初发了一篇文章Web渗透实验:基于Weblogic的一系列漏洞,今年把这篇文章接力写一下。

    FB客服
  • 散装记录之如何单独使用modelsim进行仿真

    无独有偶,这两天都遇到了只能用modelsim进行仿真的要求,事情虽小,但是觉得还是要记录一下的,所以在此记录一下如何单独使用modelsim进行verilog...

    根究FPGA
  • 杀死进程

    按大写O再按k再敲回车,然后使用R就可以以cpu占用量进行查看了!下面贴出top的技巧命令:

    一滴水的眼泪
  • laravel使用redis配置队列

    有些任务并不需要及时运行,就可以将其写入队列,从而不影响主业务逻辑的进程。如:用户发帖成功后推送消息给其关注的用户。如果一个用户是大v,有几百万的粉丝,肯定不能...

    章鱼喵
  • 苹果公司针对数据隐私发声:我们让数据追踪更困难

    今天,苹果公司发表了最强硬的声明,涉及隐私问题和Facebook等公司追踪用户一事。

    周俊辉

扫码关注云+社区

领取腾讯云代金券