百钱买百鸡

题目:100元买100只鸡,公鸡一只5元,母鸡一只3元,小鸡1元3只,问各买了几只鸡?

结果截图:

代码如下:

*&---------------------------------------------------------------------*
*&  数据类型
*&---------------------------------------------------------------------*
TYPES: BEGIN OF s_data,
         cock_num  TYPE i, " 公鸡数量
         hen_num   TYPE i, " 母鸡数量
         biddy_num TYPE i, " 小鸡数量
       END OF s_data.
TYPES: t_data TYPE TABLE OF s_data.
*&---------------------------------------------------------------------*
*&  内表
*&---------------------------------------------------------------------*
DATA: gt_data TYPE t_data.

START-OF-SELECTION.
  PERFORM program_main.
*&---------------------------------------------------------------------*
*&      Form  program_main
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM program_main .
  DATA: ls_data TYPE s_data.

  PERFORM count_chook_quantity CHANGING gt_data.

  LOOP AT gt_data INTO ls_data.
    WRITE:/ '公鸡数:', ls_data-cock_num,
            '母鸡数:', ls_data-hen_num,
            '小鸡数:', ls_data-biddy_num.
  ENDLOOP.

ENDFORM.                    " PROGRAM_MAIN

*&---------------------------------------------------------------------*
*&      Form  COUNT_CHOOK_QUANTITY
*&---------------------------------------------------------------------*
*       text  100元买100只鸡,问各买了几只
*             公鸡5元/只
*             母鸡3元/只
*             小鸡1元3只
*----------------------------------------------------------------------*
*      <--ct_data   text
*----------------------------------------------------------------------*
FORM count_chook_quantity CHANGING ct_data TYPE t_data.
  DATA: ls_data TYPE s_data.

  DATA: lv_cock  TYPE i, " 公鸡数量
        lv_hen   TYPE i, " 母鸡数量
        lv_biddy TYPE i. " 小鸡数量

  DATA: lv_num  TYPE i,
        lv_cash TYPE i.

  lv_cock  = 0 - 1.
  lv_hen   = 0 - 1.
  lv_biddy = 0 - 1.

  DO.
    lv_cock = lv_cock + 1.
    lv_cash = lv_cock * 5.
    IF lv_cash > 100.
      EXIT.
    ELSEIF lv_cash = 100.
      lv_num = lv_cock.
      IF lv_num = 100.
        CLEAR ls_data.
        ls_data-cock_num  = lv_cock.   " 公鸡数量
        ls_data-hen_num   = lv_hen.    " 母鸡数量
        ls_data-biddy_num = lv_biddy.  " 小鸡数量
        APPEND ls_data TO ct_data.
        EXIT.
      ENDIF.
      EXIT.
    ENDIF.
    CLEAR lv_hen.
    DO.
      lv_hen  = lv_hen + 1.
      lv_cash = lv_cock * 5 + lv_hen * 3.
      IF lv_cash > 100.
        EXIT.
      ELSEIF lv_cash = 100.
        lv_num = lv_cock + lv_hen.
        IF lv_num = 100.
          CLEAR ls_data.
          ls_data-cock_num  = lv_cock.   " 公鸡数量
          ls_data-hen_num   = lv_hen.    " 母鸡数量
          ls_data-biddy_num = lv_biddy.  " 小鸡数量
          APPEND ls_data TO ct_data.
          EXIT.
        ENDIF.
      ENDIF.
      CLEAR lv_biddy.
      DO.
        lv_biddy = lv_biddy + 3.
        lv_cash  = lv_cock * 5 + lv_hen * 3 + ( lv_biddy / 3 ) * 1.
        IF lv_cash > 100.
          EXIT.
        ELSEIF lv_cash = 100.
          lv_num = lv_cock + lv_hen + lv_biddy.
          IF lv_num = 100.
            CLEAR ls_data.
            ls_data-cock_num  = lv_cock.   " 公鸡数量
            ls_data-hen_num   = lv_hen.    " 母鸡数量
            ls_data-biddy_num = lv_biddy.  " 小鸡数量
            APPEND ls_data TO ct_data.
            EXIT.
          ENDIF.
        ENDIF.
      ENDDO.
    ENDDO.
  ENDDO.

ENDFORM.                    "count_chook_quantity

 

 注:如有疏漏之处,还请不吝赐教!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值