MySQL_用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

浙公网安备 33010602011771号