编写一个程序,输入一个整数,使用循环结构将该数字左右翻转,输出翻转后的结果。
通过存储过程
首先通过set serveroutput on将打印服务开启
1通过 &输入一个数
2使用loop循环
3使用mod取余数来获取数
4使用trunc取整数
解题思路
假如v_n:=123
如果有一个数 123 想取到最后一位有多种方式
1.可以将这一组数转成数组 取length的最后一位
2.使用取余整除法,123 取余10 就是3 取余100就是23,23整除10就是2以此类推就是3 2 1
4.取这个数好取如果随机个一串数就不知道取几次这个时候就需要判断这串数的长度就取几次,再加上取第几位,这时用上计数器第一次取余10(个位)第二次取余100(百位 个位) 但这里只要百位 除以10就是百位
5.取余时10计数v_I 的平方 同时 在整除时 也要除以 10v_i 的平方 (只取整数)
mod(v_a,10*power(10,v_i)) --power函数与Java的左移预算相似10<<2 就是10*10==>100
10*(10*1)=mod(v_i,10)==>3 --当计数器v_i 为0时:power(10,0)=1
10*(10*10)=mod(v_i,100)==>23 --当v_i 为1时 power(10,1)的值为10
详细代码:
declare
v_n number; --输入的数值
v_tmp number; --组合后 最后输出用
v_i number :=0; --循环计数器
begin
v_n:=&请输入要反转的数值; --通过 & 输入一个值
while v_i<length(v_n) loop 通过输入
v_tmp:=v_tmp||trunc(mod(v_n,10*power(10,v_i))/power(10,v_i));
v_i:=v_i+1;
end loop;
dbms_output.put_line(v_tmp);--输出最终拼接的结果
end;