关于Oracle做题思路

编写一个程序,输入一个整数,使用循环结构将该数字左右翻转,输出翻转后的结果。

通过存储过程
首先通过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;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值