假如今天是星期天,问17的17次方后的那一天是星期几,2008的2002次方天后的那一天是星期几?(csdn:200分 或 dfw:200分 要求:算法,delphi源程序)

解决方案 »

  1.   

    这还需要什么算法?星期二,星期日举个例子:
    9*8=9+9+9+9+9+9+9+9
    如果是9天后,(9 mod 7)=2,也就星期二,8个9天后,就变成8*2,像上面的(8 mod 7)*2=2
    9*8天后就是2*1天后((17 mod 7)*(17 mod 7) mod 7)=(3*3 mod 7)=2
    ((2002 mod 7)*(2008 mod 7) mod 7)=(0*6 mod 7)=0
      

  2.   

    J:=2008; //J的K次方
      K:=2002;
      L:=((J mod 7)*K) mod 7;;
      case L of
        1:showmessage('星期一');
        2:showmessage('星期二');
        3:showmessage('星期三');
        4:showmessage('星期四');
        5:showmessage('星期五');
        6:showmessage('星期六');
        0:showmessage('星期日');
      end;
      

  3.   

    或下面也可以:  J:=2008; //J的K次方
      K:=2002;
      L:=((J mod 7)*(K mod 7)) mod 7;;
      case L of
        1:showmessage('星期一');
        2:showmessage('星期二');
        3:showmessage('星期三');
        4:showmessage('星期四');
        5:showmessage('星期五');
        6:showmessage('星期六');
        0:showmessage('星期日');
      end;