ABAP實現FizzBuzz字符打印

“FizzBuzz 問題”常用於考驗程序員的基本功,如何使用ABAP快速實現“FizzBuzz 問題”呢?本篇給出了一個參考示例 - 

1 “FizzBuzz 問題”需求如下:

  1. 寫一個程序打印1到100這些數字。但是遇到數字爲3的倍數的時候,打印“Fizz”替代數字,5的倍數用“Buzz”代替,既是3的倍數又是5的倍數打印“FizzBuzz”。
  2. 每個數字要以“逗號+空格”分隔;
  3. 注意最後一個字符的尾部不要有“逗號”

2 輸出舉例:

1, 2, Fizz, 4, Buzz, .... 13, 14, FizzBuzz, 16, ... 97, 98, Fizz, Buzz

3 代碼實現

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 ).

程序運行效果如下 - 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章