山东001在线

 找回密码
 立即注册
搜索
查看: 101|回复: 0

[美女] 新闻提要kctf2022秋季赛-参赛题 by lelfei2023/3/27 16:04:58

[复制链接]
  • TA的每日心情
    难过
    2023-6-30 13:24
  • 签到天数: 40 天

    [LV.5]常住居民I

    发表于 2023-3-27 16:04:57 | 显示全部楼层 |阅读模式

    :ZSZX44-P7I7网络验证的相关知识也可以到网站具体了解一下,有专业的客服人员为您全面解读,相信会有一个好的合作!






    说明:


    一道简单的算法题,算法原型是:一个范围内的数,自我累加次后,模结果与原数相差1,问这个数是多少解法为:累加次后,为什么会出现模与原数相差1呢,是因为累加-1次时,结果应为*+1或*-1,由于,累加-1次时*(-1)*(-1),可以得到=-1,可以编程检测在范围(1,)中的,判断*+1或*-1能否被-1整除,只需要检测次:


    ='456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'


    C():


    =''


    =()


    (0):


    +=[%]


    =





    (,):


    (1,):


    (*+1)%(-1)==0:


    =(*+1)(-1)


    (,,"+1",C())


    (*-1)%(-1)==0:


    =(*-1)(-1)


    (,,"-1",C())


    这里取=**,=32,计算(**,32)结果为:


    387677435483872+1ZSZX44


    6958459-1P7I7


    故此题答案为ZSZX44-P7I7。


    程序现时,获取用户输入的并用“-”切分成二部分,按62进制转换成2个大数1和2,再指定一个初始化大数=(62)IRZ6B=**,要求1、2、12,然后循环00000次对1和2累加,当出现模结果与1、2相差1时值增加1,发现为时注册成功。然后在大数计算的二个函数BNM和BND中,发现0时,检测循环次数,当正好是时再分别把增加4,达到注册成功条件。在大数计算的函数中有一些干扰计算,分析时跳过即可。


    此题难点在于分析过程,由于范围和累加次数与注册码没有明显联系,需要分析数的特性并用脚本穷举。只需要分析出对于给定的和,符合累加模结果与原数相差1的数可以简单计算出来,就可以轻松求解。


    程序在VC6+WIN7中编译通过。





    #(,":\"\"")
    #(,":\"ME\"")
    #(,":46")
    #(,":=")把段合并到段中

    #
    #

    #

    #SHOW_DEBUG_INFO1
    #ROUND_TEST_MODE1

    #BIG_NUM_BYTE_COUNT0

    _BN
    {
    L;
    D[BIG_NUM_BYTE_COUNT];
    }BN;


    _MF
    {
    BN0;
    BN0;
    BN1;
    BN1;
    BN;
    ;
    ;
    BN;
    BN;
    }MF;
    MF;


    []="456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    []="IRZ6B";



    BNIS(BN*,*,);
    BNIN(BN*O,);
    BNC(BN*O,BN*);
    BNC(BN*1,BN*2);
    BNA(BN*O,BN*1,BN*2);
    BNS(BN*O,BN*1,BN*2);
    BNA(BN*O,BN*1,BN*2);
    BNO(BN*O,BN*1,BN*2);
    BNX(BN*O,BN*1,BN*2);
    BNM(BN*O,BN*1,BN*2);
    BND(BN*O,BN*1,BN*2);
    BNM(BN*O,BN*1,BN*2);
    BNMI(BN*1,2);
    BNS(BN*O,BN*1,2);
    BNS(BN*O,BN*1,2);


    #SHOW_DEBUG_INFO
    BNP(BN*,R=)
    {
    ,;
    =-L;
    ("[%]=",);
    ,;
    (R)
    {
    (=-1;=0;--)
    {
    =-D[]4;
    +=(?48:55);
    =-D[]00F;
    +=(?48:55);
    ("%%",,);
    }
    }

    {
    (=0;;++)
    {
    =-D[]4;
    +=(?48:55);
    =-D[]00F;
    +=(?48:55);
    ("%%",,);
    }
    }
    ("\");
    }

    BC(BN*,*)
    {
    ,,;
    [BIG_NUM_BYTE_COUNT]={0};
    [BIG_NUM_BYTE_COUNT]={0};
    [BIG_NUM_BYTE_COUNT]={0};
    =6,=();

    (==);

    =-L;
    =0;
    (=0;;++)[]=-D[];
    []=0;0
    ()
    {
    (=;=1;--)
    {
    [-1]+=[]%*;
    []=;
    }
    [++]=[0]%;
    [0]=;
    (0![-1])--;
    }
    (=0;;++)[]=[[]];
    ("[%]=%\",,);
    }
    #SHOW_DEBUG_INFO

    BNIS(BN*,*,)
    {
    ,=0;
    [BIG_NUM_BYTE_COUNT]={0};
    ;
    ;

    (=0;;++){
    =[];
    (='A'='F')=-'A'+;
    (='0'='9')=-'0';
    -1;
    []=;
    ++;
    }
    -L=(+1)1;
    (%2==1)
    {
    -D[1]=[-1];
    --;
    }
    (=0;;+=2)
    -D[1]=([+1]4|[]);

    -L;
    }

    BNIB(BN*,*,,*)
    {
    ,,;
    ;
    [BIG_NUM_BYTE_COUNT]={0};
    ;
    =6;

    =();
    (=0;;++){
    =[];
    =-1;
    (=0;;++){
    ([]==){
    =;
    ;
    }
    }
    (0)-1;
    []=;
    }

    ([-1]==0)0;0

    []=0;0
    =0;
    ()
    {
    (=;=1;--)
    {
    [-1]+=[]%*;
    []=;
    }
    -D[++]=[0]%;
    [0]=;
    (0![-1])--;
    }
    (=BIG_NUM_BYTE_COUNT)-1;
    -L=;
    ;
    }

    BNIN(BN*O,)
    {
    O-D[()]=0;
    (O-D,,());
    =();
    (0O-D[-1]==0)
    {
    --;
    }
    O-L=;

    ;
    }

    BNC(BN*O,BN*)
    {
    O-L=-L;
    (O-D,-D,O-L);
    O-L;
    }

    BNC(BN*1,BN*2)
    {
    ;

    (1-L2-L)1;
    (1-L2-L)-1;
    (=1-L-1;=0;--)
    {
    (1-D[]2-D[])1;
    (1-D[]2-D[])-1;
    }

    (BNMI(1,)==BNIN(1,4)){
    BNS(1,1,);
    BNMI(1,);
    }

    0;
    }

    BNA(BN*O,BN*1,BN*2)
    {
    ,;
    =0;
    [BIG_NUM_BYTE_COUNT+4]={0};

    (1-L=2-L)=1-L;
    =2-L;
    (=0;;++)
    {
    (1-L)+=1-D[];
    (2-L)+=2-D[];
    []=0FF;
    =8;
    }
    ()
    {
    [++]=0FF;
    =8;
    }
    (0[-1]==0)
    {
    --;
    }
    O-L=;
    (O-D,,);

    (BNMI(1,)==4){
    BNS(1,1,);
    BNMI(1,);
    }

    ;
    }

    BNS(BN*O,BN*1,BN*2)
    {
    ,;
    =0;
    [BIG_NUM_BYTE_COUNT]={0};

    (1-L=2-L)=1-L;
    =2-L;
    (=0;;++)
    {
    (1-L)+=1-D[];
    (2-L)-=2-D[];
    []=0FF;
    =8;
    }
    (BIG_NUM_BYTE_COUNT)
    {
    [++]=0FF;
    =8;
    }
    (0[-1]==0)
    {
    --;
    }
    O-L=;
    (O-D,,);

    (BNMI(,)==4){
    BNMI(1,);
    BNS(1,1,);
    }

    ;
    }

    BNA(BN*O,BN*1,BN*2)
    {
    ,;
    =0;
    [BIG_NUM_BYTE_COUNT]={0};

    (1-L=2-L)=1-L;
    =2-L;
    (=0;;++)
    {
    (1-L)=1-D[];
    =0;
    (2-L)=2-D[];
    []=0FF;
    }
    (0[-1]==0)
    {
    --;
    }
    O-L=;
    (O-D,,);

    BNO(1,,0);
    (%2==1BNC(1,1)0){
    BNS(1,1,);
    BNMI(1,);
    }

    (BNMI(1,)==){
    BNC(1,);
    =BNMI(1,);
    BNIN(1,);
    }

    ;
    }

    BNO(BN*O,BN*1,BN*2)
    {
    ,;
    =0;
    [BIG_NUM_BYTE_COUNT]={0};

    (1-L=2-L)=1-L;
    =2-L;
    (=0;;++)
    {
    (1-L)=1-D[];
    =0;
    (2-L)|=2-D[];
    []=0FF;
    }
    (0[-1]==0)
    {
    --;
    }
    O-L=;
    (O-D,,);

    BNX(1,,0);
    (%2==0BNC(1,1)==0){
    =BNMI(1,);
    BNS(1,1,);
    BNIN(1,);
    BNA(1,1,);
    }

    (0BNC(1,1)==0){
    BNS(1,1,);
    BNMI(1,);
    BNS(1,1,);
    }

    ;
    }

    BNX(BN*O,BN*1,BN*2)
    {
    ,;
    =0;
    [BIG_NUM_BYTE_COUNT]={0};

    (1-L=2-L)=1-L;
    =2-L;
    (=0;;++)
    {
    (1-L)=1-D[];
    =0;
    (2-L)^=2-D[];
    ^=0;
    []=0FF;
    }
    (0[-1]==0)
    {
    --;
    }
    O-L=;
    (O-D,,);

    (0BNMI(1,)==BNIN(1,4)){
    BNS(1,1,);
    BNMI(1,);
    }

    ;
    }

    BNM(BN*O,BN*1,BN*2)
    {
    ,,,;
    =0;
    [BIG_NUM_BYTE_COUNT*2]={0};

    (1-L+2-LBIG_NUM_BYTE_COUNT){
    O-L=0;
    O-D[0]=0;
    1-L+2-L;
    }
    (=0;1-L+2-L-1;++)5:3:70-6
    {
    (1-L)=;:456:444-:000
    =1-L-1;
    (2-L)=;:456:2-:4
    =2-L-1;

    (=-;=;++)1::0-00--32-43-44-4
    {2:0--2
    +=()1-D[]*()2-D[-];
    }-:0-00-0
    []=0FF;-+-:0--2
    =8;
    }
    ()
    {
    [++]=0FF;
    =8;
    }
    (0[-1]==0)
    {
    --;
    }
    (BIG_NUM_BYTE_COUNT){
    O-L=0;
    O-D[0]=0;
    }
    {
    (O-D,,);
    O-L=;
    }

    BNA(1,,);
    (BNC(1,1)00){
    BNS(1,1,);
    BNA(1,0,0);
    BNS(1,1,1);
    }

    BNIN(1,4);
    BNS(1,1,3);
    (0*(*)D[1D[0]]==()1D[0]){
    BNA(1,1,1);
    =BNMI(1,);
    D[1D[0]]+=4;
    BNS(1,1,);
    BNS(1,1,1);
    }

    ;
    }

    BND(BN*O,BN*1,BN*2)
    {
    ,;
    [BIG_NUM_BYTE_COUNT*2]={0};
    BN;

    =BNC(1,2);
    (0)
    {
    O-L=0;
    O-D[0]=0;
    0;
    }
    (==0)
    {
    O-L=1;
    O-D[0]=1;
    1;
    }
    =1-L-2-L;
    L=2-L;
    (D[0],1-D[],2-L);
    (=;=0;--)
    {
    (BNC(,2)=0)
    {
    []++;
    BNS(,,2);
    }
    (0)
    {
    BNS(,,8);
    D[0]=1-D[-1];
    (L==0D[0]0)L=1;
    }
    }
    =+1;
    (0[-1]==0)
    {
    --;
    }
    (O-D,,);
    O-L=;

    BNS(1,,0);
    BNA(1,,0);
    (BNC(1,1)==0||0){
    BNS(1,1,);
    BNMI(1,);
    }

    BNIN(1,4);
    BNS(1,1,3);
    (0*(*)D[1D[0]]==()1D[0]){
    BNA(1,1,1);
    =BNMI(1,);
    D[1D[0]]+=4;
    BNS(1,1,);
    BNS(1,1,1);
    }

    ;
    }

    BNM(BN*O,BN*1,BN*2)
    {
    ,;
    [BIG_NUM_BYTE_COUNT*2]={0};
    BN;

    =BNC(1,2);
    (0)
    {
    O-L=1-L;
    (O-D[0],1-D[0],1-L);
    2-L;
    }
    (==0)
    {
    O-L=0;
    O-D[0]=0;
    0;
    }
    =1-L-2-L;
    L=2-L;
    (D[0],1-D[],2-L);
    (=;=0;--)
    {
    (BNC(,2)=0)
    {
    []++;
    BNS(,,2);
    }
    (0)
    {
    BNS(,,8);
    D[0]=1-D[-1];
    (L==0D[0]0)L=1;
    }
    }
    (O-D,D[0],L);
    O-L=L;

    BNA(1,,);
    (BNC(1,1)00){
    BNS(1,1,);
    BNA(1,0,0);
    BNS(1,1,1);
    }

    L;
    }

    BNMI(BN*1,2)
    {
    ;
    =0;

    (2=0)0;

    (=1-L-1;=0;--)
    {
    =8;
    +=1-D[];
    (2)%=2;
    }

    ;
    }

    BNS(BN*O,BN*1,2)
    {
    ,,;
    =0;
    [BIG_NUM_BYTE_COUNT*2]={0};

    =;
    =2%8;
    (+1-LBIG_NUM_BYTE_COUNT)
    {
    O-L=0;
    O-D[0]=0;
    +1-L;
    }
    (=0;;++)
    {
    (1-L)+=(1-D[]);
    [+]=0FF;
    =8;
    (=1-L==0);
    }
    =+1-L+1;
    (0[-1]==0)
    {
    --;
    }
    (BIG_NUM_BYTE_COUNT){
    O-L=0;
    O-D[0]=0;
    }
    {
    (O-D,,);
    O-L=;
    }
    ;
    }

    BNS(BN*O,BN*1,2)
    {
    ,,,;
    =0;
    [BIG_NUM_BYTE_COUNT*2]={0};

    =;
    =2%8;
    =(1)-1;
    (=1-L-1;=;--)
    {
    =8;
    +=1-D[];
    [-]=;
    =;
    }
    (1-L-0)=1-L-;
    =0;
    (0[-1]==0)
    {
    --;
    }
    (BIG_NUM_BYTE_COUNT){
    O-L=0;
    O-D[0]=0;
    }
    {
    (O-D,,);
    O-L=;
    }
    ;
    }



    ()
    {
    [0]={0};
    ;
    ;

    #SHOW_DEBUG_INFO

    []="ZSZX44-P7I7";
    (,,()+1);
    #

    ("I:");
    ();
    #SHOW_DEBUG_INFO

    "**START:"GTC();
    =-1;
    =0;
    ([]!=00)
    {
    ([]=='-')=;
    ++;
    }
    (0(-)0){
    (BNIB(0,,,)0BNIB(0,[+1],--1,)0){
    BNIB(,,(),);
    #SHOW_DEBUG_INFO
    BNP(0,);
    BC(0,);
    BNP(0,);
    BC(0,);
    BNP(,);
    BC(,);
    #SHOW_DEBUG_INFO
    BNIN(,0);
    BNIN(,0);
    (BNC(0,0)0BNC(0,)0BNC(0,)0){
    =0;
    (00000){
    ++;
    BNA(,,0);
    BNA(,,0);
    BNM(,,);
    BNM(,,);
    BNIN(1,1);
    BNS(1,,1);
    (BNC(1,0)==0){
    ++;
    BNM(1,1,0);
    }
    BNIN(1,1);
    BNA(1,,1);
    (BNC(1,0)==0){
    ++;
    BND(1,,0);
    }
    (==){
    ("S!\");
    0;
    }
    #SHOW_DEBUG_INFO
    ("%\",);
    BNP(,);
    BNP(,);
    #SHOW_DEBUG_INFO
    }
    }
    }
    }
    ("E\");

    0;
    }
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Archiver|山东001在线 ( ICP11027147 )

    GMT+8, 2024-4-20 15:19 , Processed in 0.056481 second(s), 18 queries , Gzip On.

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表