千家信息网

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

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,小编给大家分享一下怎么在ABAP里用函数式编程思想打印出非波拉契Fibonacci,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一
千家信息网最后更新 2025年02月01日怎么在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 ichanging 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 ichanging 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 7.40提供的新关键字COND实现的非波拉契数列打印:

REPORT z.CLASS lcl_fibonacci DEFINITION.PUBLIC SECTION.TYPES: zint_tab TYPE TABLE OF int4 WITH EMPTY KEY.METHODS fibonacciIMPORTING !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| ) )ELSEVALUE #( 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"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

波拉 篇文章 函数 思想 编程 内容 数列 方式 不怎么 传统 关键 关键字 大部分 方案 更多 知识 行业 解决方案 资讯 资讯频道 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 什么叫数据库访问组件 开远天气预报软件开发 统一战线网络安全培训 未来教育三级数据库题库准吗 国家网络安全及实名制要求 机动车安全检测数据库修改 奶块各服务器药水价格 关于数据库索引唯一 厦门聚仁网络技术有限公司 数据库包含 like 互联网科技与法律行业相结合 学软件开发有哪些方向 专业模具制造管理软件开发 常见的网络安全违规行为 云计算时代的网络技术 南京软件开发定制公司有哪些 文县java软件开发 武汉市网络安全大会 新奇科技与互联网之光 四川管理软件开发价格 网络安全与信息技术总结 中电科天津网络安全公司 jdbc访问数据库的基本操作 今日头条 互联网科技观点 举例写出两条网络安全防护技巧 服务器主板 xmp 全国计算机大赛网络技术 自动驾驶智能网络技术 软件开发有哪些地方好玩 软件开发什么语言更好
0