ABAP實現FizzBuzz字元列印

2021-10-01 13:41:21 字數 1134 閱讀 3646

「fizzbuzz 問題」常用於考驗程式設計師的基本功,如何使用abap快速實現「fizzbuzz 問題」呢?本篇給出了乙個參考示例 - 

寫乙個程式列印1到100這些數字。但是遇到數字為3的倍數的時候,列印「fizz」替代數字,5的倍數用「buzz」代替,既是3的倍數又是5的倍數列印「fizzbuzz」。

每個數字要以「逗號+空格」分隔;

注意最後乙個字元的尾部不要有「逗號」

1, 2, fizz, 4, buzz, .... 13, 14, fizzbuzz, 16, ... 97, 98, fizz, buzz

data: lv_number    type i value 1,

lv_delimiter type char2 value ', ',

lv_string type string,

lv_result type string.

do 100 times.

if lv_number mod 15 = 0.

lv_string = 'fizzbuzz'.

elseif lv_number mod 3 = 0.

lv_string = 'fizz'.

elseif lv_number mod 5 = 0.

lv_string = 'buzz'.

else.

lv_string = lv_number && ''. " int2 -> char(1)

endif.

lv_number = lv_number + 1.

if lv_result is initial.

lv_result = lv_string.

else.

concatenate lv_result lv_delimiter lv_string into lv_result respecting blanks.

endif.

enddo.

cl_demo_output=>display( lv_result ).

程式執行效果如下 - 

ABAP實現多表頭ALV

實現 雙層設定 這句話是關鍵,擴充套件節點 第一層表頭 cns vbap type slis tabname value ty wflist 第二層專案 表頭 l h tbl fieldcat tabname cns vbak.l h tbl fieldcat fieldname instid l ...

abap多標籤頁實現(tabstrip)

如圖 可以通過畫螢幕即call screen或者純 實現。以下 為純 實現方式 data flag 1 type c.subscreen 1 selection screen begin of screen 100 as subscreen.selection screen begin of blo...

ABAP實現ALV表頭動態輸出 日期

data begin of it date occurs 0,lv date like vbak vdatu,endof it date.data begin of it month occurs 0,month 8 type c,end of it month.獲取每個so的所有交貨日期 yyyy...