# 使用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',

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.
append fib to fibo.
enddo.
endform.                    "fibonacci_2```

0 条评论

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

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

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

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

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

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

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

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

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

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

• ### 内网渗透实验：基于Cobaltstrike的一系列实验

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

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

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

• ### 杀死进程

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

• ### laravel使用redis配置队列

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

### Jerry Wang

SAP成都研究院开发专家

SAP成都研究院 · 开发专家 (已认证)