网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

怎么在ABAP里用函数式编程思想打印出非波拉契Fibonacci

小编给大家分享一下怎么在ABAP里用函数式编程思想打印出非波拉契Fibonacci,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

创新互联是一家集网站建设,武宣企业网站建设,武宣品牌网站建设,网站定制,武宣网站建设报价,网络营销,网络优化,武宣网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

在ABAP里也有很多种方式实现这个需求。

下面这个report分别用递归和ABAP internal table的方式实现了非波拉契数列的打印。

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

怎么在ABAP里用函数式编程思想打印出非波拉契Fibonacci

以上两种解决方案相对来说都比较传统,再来看看使用ABAP 7.40提供的新关键字COND实现的非波拉契数列打印:

REPORT z.CLASS lcl_fibonacci DEFINITION.
PUBLIC SECTION.
TYPES: zint_tab TYPE TABLE OF int4 WITH EMPTY KEY.
METHODS fibonacci
IMPORTING !n TYPE i RETURNING VALUE(fib_numbers) TYPE zint_tab.
ENDCLASS.CLASS lcl_fibonacci IMPLEMENTATION.
METHOD fibonacci.
fib_numbers = COND #( WHEN n = 0THEN VALUE #( ( |0| ) )WHEN n = 1THEN VALUE #( ( |0| ) ( |1| ) )ELSE
VALUE #( LET fn1 = fibonacci( n - 1 )x = fn1[ lines( fn1 ) ]
y = fn1[ lines( fn1 ) - 1 ]
IN ( LINES OF fn1 ) ( x + y ) ) ).
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
cl_demo_output=>display( NEW lcl_fibonacci( )->fibonacci( 10 ) ).

怎么在ABAP里用函数式编程思想打印出非波拉契Fibonacci

打印输出:

怎么在ABAP里用函数式编程思想打印出非波拉契Fibonacci

以上是“怎么在ABAP里用函数式编程思想打印出非波拉契Fibonacci”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


新闻标题:怎么在ABAP里用函数式编程思想打印出非波拉契Fibonacci
浏览地址:http://bjjierui.cn/article/jjsohi.html

其他资讯