• 用sql写出喝汽水的问题


    今天遇到一个有趣的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
    

      

  • 相关阅读:
    dubbo快速入门
    UmiJS快速入门
    springboot整合springsecurity
    springmvc快速入门
    spring快速入门
    RabbitMQ快速入门
    解决openFeign远程调用超时的异常
    vue实现全局登录
    XMLHttpRequest简介
    IE8兼容性经验小结
  • 原文地址:https://www.cnblogs.com/mmdz/p/12899850.html
Copyright © 2020-2023  润新知