MySQL_用sql写出喝汽水的问题

youxin 阅读:51 2022-07-29 11:50:59 评论:0

今天遇到一个有趣的sql,练习一下

  题目:一家冷饮店,一瓶汽水1元钱,喝完汽水后,用2个空瓶可以换1瓶汽水,若你有20元钱,最多可以喝到几瓶汽水?(用sql写出)

 用表格列出过程:

如果没有思路时,可以先用程序写出结果,其过程和sql差别不大

int func(int m) 
{ 
    int n=1, s;     //n:这次新换的,s:上一次换过之后剩余的 
    int sum = m;     //初始化总换取的数量为所给钱数 
    while (n!=0) 
    { 
        n = m / 2; 
        s = m % 2; 
        m = n + s; 
        sum = sum + n; 
    } 
    return sum; 
} 

  注:具体代码其实和sql写法大致差不多

用同样的思路,转换为sql,运行结果:

declare @n int -- 上次换掉剩余的的旧空瓶 
declare @m int -- 当前一共有的空瓶数 
declare @s int -- 总共喝的瓶数 
declare @sum int -- 总共喝的瓶数 
 
-- m(当前一共有的空瓶数)=n(上次新换的瓶子)+s(上次换掉剩余的的旧空瓶) 
 
set @m = 20 
set @n = 1 
set @sum = @m 
 
WHILE @n != 0 
BEGIN 
SET @n = @m / 2 
SET @s = @m % 2 
SET @m = @n + @s 
SET @sum = @sum + @n 
END 
 
print @sum 

  


本文参考链接:https://www.cnblogs.com/mmdz/p/12899850.html
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

搜索
排行榜
关注我们

一个IT知识分享的公众号