用逻辑控制编写伪程序代码:1、抢凳子游戏:10个人,9个凳子,每轮一个人抢不到凳子淘汰,然后拿掉一个凳子,继续下一轮,直到剩下最后一个人;2、一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地时,共经过了多少米。3、给以下伪代码增加注释,并描述伪代码主要功能:
cal(年份,月份,日期)
begin
  结果 :=0 ;
  for(当前数=1;当前数<月份;当前数++) loop
    if 当前数 in (1,3,5,7,8,10,12) then
      结果:=结果+31;
    elsif 当前数 in (4,6,9,11) then
      结果:=结果+30;
    elsif 当前数=2 then
      if(年份=闰年) then
        结果:=结果+29;
      else
        结果:=结果+=28;
      end if;
    end if;
  end loop;
  return 结果+日期;
end;

解决方案 »

  1.   


    --一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地时,共经过了多少米。
    declare @len decimal(18,8)=100.00,
    @len1 decimal(18,8)=100.00,
    @len2 decimal(18,8),
    @a int=1
    while @a<=10
    begin
    set @len2=@len1/2*2
    set @len1=@len2/2
    set @len=@len+@len2
    set @a=@a+1
    end
    select @len
      

  2.   

    楼主是编程实现;用SQL 也是可以的!不过意义不大!!
      

  3.   


    getlen(int length,int time)
    {
    int len=length;
    int downlen=len;
    int uplen=0;
    int alllen=len;
    for(int i=1;i<time;i++)
    {
        uplen=len/2;
        downlen=uplen;
        alllen=alllen+uplen+downlen;
    }
    return alllen
    }
    length=getlen(100,10)