mysql set 算法_MySQL高级算法题 存储过程

本文介绍了在MySQL中使用存储过程实现不同类型的循环(while, repeat, loop)和条件判断(if, leave),包括求1-100的和、10以内奇数的和、1-n的和、1-100偶数的和以及计算阶乘的算法。通过这些示例,展示了MySQL在处理数学算法和流程控制方面的应用。" 99639185,8635159,Vue组件动态切换实践,"['前端开发', 'Vue']
摘要由CSDN通过智能技术生成

#创建存储过程 求1-100的值

#while

delimiter $$

create procedure pro_sum(out count int)

begin

declare i int default 1;

declare sum int default 0;

while i <= 100 do

set sum = sum + i;

set i = i + 1;

end while;

set count = sum;

end $$

delimiter ;

call pro_sum(@count);

select @count;

#repeat

delimiter $$

create procedure pro_sum2(out count int)

begin

declare i int default 1;

declare sum int default 0;

repeat

set sum = sum + i;

set i = i + 1;

until i>100

end repeat;

set count = sum;

end $$

delimiter ;

#LOOP+if+leave+循环体

delimiter $$

create procedure pro_sum3(out count int)

begin

declare i int default 1;

declare sum int default 0;

lp:loop

set sum = sum+i;

set i = i+1;

if i>100 then

leave lp;

end if;

end loop lp;

end $$

delimiter ;

#求10以内奇数值的和

#while

delimiter $$

create procedure pro_jsum(out count int)

begin

declare j int(11) default 1;

declare sum int(11) default 0;

while j <= 10 do

set sum = sum + j;

set j = j + 2;

end while;

set count = sum;

end $$

delimiter ;

call pro_jsum(@count);

select @count;

delimiter $$

create procedure pro_jsum1(out count int)

begin

declare j int default 1;

declare sum int default 0;

repeat

set sum = sum + j;

set j = j + 2;

until j>=10

end repeat;

end $$

delimiter ;

#loop+leave

delimiter $$

create procedure pro_jsum2(out count int)

begin

declare j int default 1;

declare sum int default 0;

lp1:loop

set sum = sum + j;

set j = j + 2;

if i>=10 then

leave lp1;

end if;

end loop lp1;

end $$

delimiter ;

#创建存储过程 求1-n的值

delimiter $$

create procedure pro_n(in num1 int)

begin

declare i int default 1;

declare sum int default 1;

while i < num1 do

set i = i+1;

set sum = sum + i;

end while;

select sum;

end $$

delimiter ;

call pro_n(10);

#repeat

delimiter $$

create procedure pro_n1(in num1 int)

begin

declare i int default 1;

declare sum int default 1;

repeat

set sum = sum + i;

set i = i + 1;

until i < num1

end repeat;

end $$

delimiter ;

#LOOP

delimiter $$

create procedure pro_n2(in num1 int)

begin

declare i int default 1;

declare sum int default 1;

lp:loop

set sum = sum + i;

set i = i + 1;

if i < num1 then

leave lp;

end if;

end loop lp;

end $$

delimiter ;

#存储过程实现1-100偶数和

#while

delimiter $$

create procedure pro_osum(out num2 int)

begin

declare i int default 0;

declare sum int default 0;

while i <= 100 do

set i = i + 2;

set sum = sum + i;

end while;

set num2=sum;

end $$

delimiter ;

call pro_osum(@num2);

select @num2;

#repeat

delimiter $$

create procedure pro_osum1(out num2 int)

begin

declare i int default 0;

declare sum int default 0;

repeat

set i = i + 2;

set sum = sum + i;

until i<=100

end repeat;

set num2 = sum;

end $$

delimiter ;

#loop

delimiter $$

create procedure pro_osum2(out num2 int)

begin

declare i int default 0;

declare sum int default 0;

lp:loop

set i = i + 2;

set sum = sum + i;

if i>100 then

leave lp;

end if;

end loop lp;

end $$

delimiter ;

#计算n!

#while

delimiter $$

create procedure pro_n3(in num int)

begin

declare i int default 1;

declare n int default 1;

while i<=num do

set n = n * i;

set i = i + 1;

end while;

select n;

end $$

delimiter ;

call pro_n3(5);

#repeat

delimiter $$

create procedure pro_n4(in num int)

begin

declare i int default 1;

declare n int default 1;

repeat

set n = n* i;

set i = i + 1;

until i > num

end repeat;

end $$

delimiter ;

#loop

delimiter $$

create procedure pro_n5(in num int)

begin

declare i int default 1;

declare n int default 1;

lp:loop

set n = n * i;

set i = i + 1;

if i>num then

leave lp;

end if;

end loop lp;

end $$

delimiter ;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值