题目:啤酒2块钱一瓶,4个瓶盖可以换一瓶啤酒,2个空瓶可以换一瓶啤酒,10块钱可以喝几瓶?
注意,初始化类型 需要初始化值
create proc jisuan
@N int
as
declare @count int,@pgCount int,@kpCount int ,@pijiu int,@pg int, @kp int
set @count=0
set @pgCount=0
set @kpCount=0
set @pg=0
set @kp=0
set @pijiu=@N/2
while @pijiu>0
begin
set @count=@count+@pijiu
set @pg=(@pgCount+@pijiu)/4
set @pgCount=(@pgCount+@pijiu)%4
set @kp=(@kpCount+@pijiu)/2
set @kpCount=(@kpCount+@pijiu)%2
set @pijiu=@pg+@kp
end
print '得喝:'+cast(@count as varchar(225))
go
exec jisuan 10
-----------------------
@N int
as
declare @count int,@pgCount int,@kpCount int ,@pijiu int,@pg int, @kp int
set @count=0
set @pgCount=0
set @kpCount=0
set @pg=0
set @kp=0
set @pijiu=@N/2
while @pijiu>0
begin
set @count=@count+@pijiu
set @pg=(@pgCount+@pijiu)/4
set @pgCount=(@pgCount+@pijiu)%4
set @kp=(@kpCount+@pijiu)/2
set @kpCount=(@kpCount+@pijiu)%2
set @pijiu=@pg+@kp
end
print '得喝:'+cast(@count as varchar(225))
go
exec jisuan 10
第二种
create proc abc
@money int
as
declare @count int,@total int,@pg int,@kp int
set @count = @money / 2
set @total = 0
set @pg = 0
set @kp = 0
while @count > 0
begin
--print @count
set @count = @count - 1
set @pg = @pg + 1
set @kp = @kp + 1
if @pg > 3
begin
set @pg = @pg - 4
set @count = @count + 1
end
if @kp > 1
begin
set @kp = @kp - 2
set @count = @count + 1
end
set @total = @total + 1
end
print '可以喝:' + cast(@total as varchar(255))
go
exec abc 10
@money int
as
declare @count int,@total int,@pg int,@kp int
set @count = @money / 2
set @total = 0
set @pg = 0
set @kp = 0
while @count > 0
begin
--print @count
set @count = @count - 1
set @pg = @pg + 1
set @kp = @kp + 1
if @pg > 3
begin
set @pg = @pg - 4
set @count = @count + 1
end
if @kp > 1
begin
set @kp = @kp - 2
set @count = @count + 1
end
set @total = @total + 1
end
print '可以喝:' + cast(@total as varchar(255))
go
exec abc 10