TA的每日心情 | 难过 2023-6-30 13:24 |
---|
签到天数: 40 天 [LV.5]常住居民I
|
: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;
} |
|