You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在SAP ABAP环境下编写程序实现整数数字反转输出

SAP ABAP程序:整数数字反转实现

需求概述

输入一个整数,输出其数字顺序反转后的结果。例如:

  • 输入23987446,输出64478932
  • 输入123456789,输出987654321

方案1:基于字符串操作(简单直观)

利用ABAP内置的REVERSE函数直接处理字符串,代码简洁,适合绝大多数场景,同时可保留前导零的字符串形式。

完整代码

REPORT z_integer_reverse_string.

* 定义输入参数,必填且带默认值
PARAMETERS: p_input TYPE i OBLIGATORY DEFAULT 23987446.

DATA: lv_input_str  TYPE string,
      lv_reversed_str TYPE string,
      lv_reversed_num TYPE i.

* 将输入整数转换为字符串格式
lv_input_str = |{ p_input }|.

* 调用ABAP内置反转函数处理字符串
lv_reversed_str = reverse( lv_input_str ).

* 转换回整数类型(自动去除前导零)
lv_reversed_num = lv_reversed_str.

* 输出结果,同时展示两种格式
WRITE: / '输入整数:', p_input,
       / '反转后整数:', lv_reversed_num,
       / '反转后字符串(含前导零):', lv_reversed_str.

运行说明

  1. 执行程序后,在输入框中填入目标整数
  2. 点击执行,即可看到反转后的整数结果及带前导零的字符串版本(例如输入100,整数结果为1,字符串结果为001)

方案2:基于数学运算(纯数字处理)

通过循环取模、累加的方式实现反转,适合需要避免字符串操作的场景,同时支持负数处理。

完整代码

REPORT z_integer_reverse_math.

PARAMETERS: p_input TYPE i OBLIGATORY DEFAULT 23987446.

DATA: lv_temp       TYPE i VALUE p_input,
      lv_reversed   TYPE i VALUE 0,
      lv_remainder  TYPE i.

* 先处理负数,取绝对值进行反转
IF lv_temp < 0.
  lv_temp = -lv_temp.
ENDIF.

* 循环提取最后一位数字并构建反转数
WHILE lv_temp > 0.
  lv_remainder = lv_temp MOD 10. " 取最后一位数字
  lv_reversed = lv_reversed * 10 + lv_remainder. " 累加构建反转数
  lv_temp = lv_temp DIV 10. " 移除最后一位数字
ENDWHILE.

* 还原负数符号
IF p_input < 0.
  lv_reversed = -lv_reversed.
ENDIF.

WRITE: / '输入整数:', p_input,
       / '反转后整数:', lv_reversed.

注意事项

  • 若输入整数超出ABAP i类型的范围(-2147483648 至 2147483647),需将变量类型改为p DECIMALS 0以避免溢出
  • 此方法会自动去除前导零,若需保留需额外处理

内容的提问来源于stack exchange,提问作者Anish Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 13:02:08