關於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;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章