获取36位进制序列数

如果哪位大侠有更好的算法请教教我,谢谢。



*&---------------------------------------------------------------------*
*& Report  ZJIANZH05
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  zjianzh05.
DATA:    snnum(5VALUE '00000',
         lnum type i,
         c1(1),
         c2(1),
         c3(1),
         c4(1),
         c5(1),
         n1(2TYPE n,
         n2(2TYPE n,
         n3(2TYPE n,
         n4(2TYPE n,
         n5(2TYPE n.

do 300 times.
c1 snnum(1).
c2 snnum+1(1).
c3 snnum+2(1).
c4 snnum+3(1).
c5 snnum+4(1).

PERFORM get_num USING c1 CHANGING n1.
PERFORM get_num USING c2 CHANGING n2.
PERFORM get_num USING c3 CHANGING n3.
PERFORM get_num USING c4 CHANGING n4.
PERFORM get_num USING c5 CHANGING n5.


n5 n5 + 1.
IF n5 36.
  n5 0.
  n4 n4 + 1.
  IF n4 36.
    n4 0.
    n3 n3 + 1.
    IF n3 36.
      n3 0.
      n2 n2 + 1.
      IF n2 36.
        n2 =  0.
        n1 n1 + 1.
      ENDIF.
    ENDIF.
  ENDIF.
ENDIF.


PERFORM get_char USING n1 CHANGING c1.
PERFORM get_char USING n2 CHANGING c2.
PERFORM get_char USING n3 CHANGING c3.
PERFORM get_char USING n4 CHANGING c4.
PERFORM get_char USING n5 CHANGING c5.

CONCATENATE c1 c2 c3 c4 c5  INTO snnum.

lnum lnum + 1.
write:snnum.

if lnum 15.
  lnum 0.
  WRITE /.
endif.

enddo.
*&---------------------------------------------------------------------*
*&      Form  get_num
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_C1  text
*      <--P_N1  text
*----------------------------------------------------------------------*
FORM get_num  USING    p_char
              CHANGING p_num.
  SEARCH '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' FOR p_char.
  p_num sy-fdpos.
ENDFORM.                    " get_num
*&---------------------------------------------------------------------*
*&      Form  get_char
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_C1  text
*      <--P_N1  text
*----------------------------------------------------------------------*
FORM get_char  USING    p_num
              CHANGING p_char.
  DATAl_string(36VALUE '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'.
  p_char l_string+p_num.
ENDFORM.                    " get_char

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值