用pl/sql游标实现约瑟夫环
来源:互联网 发布:touch.js api 编辑:程序博客网 时间:2024/05/24 00:03
什么是约瑟夫环:
约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为1的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。通常解决这类问题时我们把编号从0~n-1,最后结果+1即为原问题的解。
创建一个全局临时表:
create global temporary table temp(t_id int) on commit delete rows;
游标实现约瑟夫环:
declare --总人数 v_total number:=&v_total; --对应的m v_step number:=&v_step; --剩余的人数 v_surplus number; --计数 v_count number:=0;begin --将数据插入到表中 for i in 1..v_total loop insert into temp values(i); end loop; v_surplus:=v_total; while v_surplus>1 loop --声明一个游标 declare cursor c_temp is select * from temp; c_row c_temp%rowtype; begin open c_temp; loop fetch c_temp into c_row; exit when c_temp%notfound; v_count:=v_count+1; --判断是否报到m的倍数,是则从表中删除 if mod(v_count,v_step)=0 then dbms_output.put_line(c_row.t_id); delete from temp where t_id=c_row.t_id; end if; end loop; close c_temp; end; --重新计数剩余的人数 select count(*) into v_surplus from temp; end loop; commit;end;
0 0
- 用pl/sql游标实现约瑟夫环
- PL/SQL游标
- PL/SQL中的游标
- PL/SQL游标
- Oracle PL/SQL游标
- PL/SQL:游标
- PL/SQL游标总结
- 初学PL/SQL 游标
- PL/SQL游标描述
- PL/SQL --> 游标
- PL/SQL游标使用
- PL/SQL 游标变量
- pl/sql游标
- PL/SQL 游标变量
- PL/SQL游标
- PL/SQL游标使用
- PL/SQL游标使用
- oracle pl sql 游标
- Android 实现EditText不可编辑
- 基于工厂的DB类
- Java回调函数使用
- Apache Avro 1.8.1 入门指南(Java)
- 钻石继承与虚继承
- 用pl/sql游标实现约瑟夫环
- 2.2 Git 基础 - 记录每次更新到仓库
- 开启新征程
- 文章标题
- opq
- 联网下载Bitmap
- smali语言
- 在线教程
- 安卓Android通过字段映射创建sqlite数据库,操作数据库,创建表,增、删、改查,通用方法,轻松编程(by寒冬)