用ABAP生成fibonacci数列

*&---------------------------------------------------------------------*
*& Report ZFIBO
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZFIBO.

TYPES: zcd_int_tab TYPE STANDARD TABLE OF i WITH key TABLE_LINE.

CLASS lcl_fibonacci DEFINITION.
  PUBLIC SECTION.
  METHODS fibonacci
    IMPORTING !n TYPE i
    RETURNING
      VALUE(fib_numbers) TYPE zcd_int_tab.
ENDCLASS.

CLASS lcl_fibonacci IMPLEMENTATION.
  METHOD fibonacci.
    fib_numbers = COND #( WHEN n = 0
                            THEN VALUE #( ( |0| ) )
                          WHEN n = 1
                            THEN VALUE #( ( |0| ) ( |1| ) )
                          ELSE
                          " Jerry 2016-12-04 16:39PM at Frankfort -> Beijing
                          " n = 2
                          " fn1 = fibo(1): (0,1) - internal table
                          " x = fn1[2] = 1
                          " y = fn1[1] = 0
                            VALUE #( LET fn1 = fibonacci( n - 1 )
                                         x   = fn1[ lines( fn1 ) ]
                                         y   = fn1[ lines( fn1 ) - 1 ]
                                      IN " how to understand this LINES OF
                                      ( LINES OF fn1 ) ( x + y ) ) ).
  ENDMETHOD.
ENDCLASS.

START-OF-SELECTION.
  cl_demo_output=>display( NEW lcl_fibonacci( )->fibonacci( 10 ) ).

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

发布了6327 篇原创文章 · 获赞 617 · 访问量 99万+

猜你喜欢

转载自blog.csdn.net/i042416/article/details/103964709