国际c语言乱码大赛经典之作_c语言经典竞赛程序
国际c语言乱码大赛经典之作由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言经典竞赛程序”。
这篇是为C写的,不过作为代码阅读习惯和能力的培养,转自人牲一笑的bolg。http://apps.hi.baidu.com/share/detail/16373609 // 原始代码
#include char *a;main(int t,int _,char* a){return!0
iK{;[{nl]'/w#q#n'wk
nw'
iwk{KK{nl]!/w{%'l##w#'
nr'/ :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c
;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w!')}+}{rl#'{n' ')# }'+}##(!/“):t char *a;// can be omitted due to function field main(int t,int _,char* a){ return!0
t
main(-79,-13,a+main(-87,1-_,main(-86,0,a+1)+a))
:1
, t
main(t+1,_,a)
:3
, main(-94,-27+t,a)&&t==2 ?
_
main(2,_+1,”%s %d %dn“)
:9
:16 :t
t
main(_,t,”@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r
:'d*'3,}{w+K
w'K:'+}e#';dq#'l
r{#w'r q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;#){nl]!/n{n#';nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' iwk{KK{nl]!/w{%'l##w#' i;:{nl]'/*{q#'ld;r'}{nlwb!/*de}'c;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w!nr'/ ')}+}{rl#'{n' ')# }'+}##(!/“)
:t
_==*a ?
putchar(31[a])
:main(-65,_,a+1)
:main((*a=='/')+t,_,a+1)
:0
main(2,2,”%s“)
:*a=='/'||main(0,main(-61,*a,”!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:nuwloca-O;m.vpbks,fxntdCeghiry“),a+1);} // 翻译成常规语言
// condition ? true : false;a,b,c generate step #include main(int t,int _,char* a){ // 逻辑运算优先级,便于理解 if(!0
if(t
main(-79,-13,a+main(-87,1-_,main(-86,0,a+1)+a));
else
1;
if(t
main(t+1,_,a);
else
3;
if(main(-94,-27+t,a)&&t==2){
if(_
return main(2,_+1,”%s %d %dn“);
else
return 9;
}else
return 16;}else{
if(t
if(t
return main(_,t,”@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r
:'d*'3,}{w+K
w'K:'+}e#';dq#'l
r{#w'r q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;#){nl]!/n{n#';nc{nl]'/#{l,+'K {rw'
iK{;[{nl]'/w#q#n'wk
nw'
iwk{KK{nl]!/w{%'l##w#' i;:{nl]'/*{q#'ld;r'}{nlwb!/*de}'c;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w!nr'/ ')}+}{rl#'{n' ')# }'+}##(!/“);
}else{
if(t
if(_==*a)
return putchar(31[a]);// pointer compile a[b] with b[a]
else
return main(-65,_,a+1);
}else{
return main((*a=='/')+t,_,a+1);
}
}
}else{
if(0
return main(2,2,”%s“);
else
// condition compile step a||b
return *a=='/'||
main(0,main(-61,*a,”!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:nuwloca-O;m.vpbks,fxntdCeghiry“),a+1);
} } } // 除去不需要的,重构if语句 #include main(int t,int _,char* a){ if(1
if(t
main(-79,-13,a+main(-87,1-_,main(-86,0,a+1)+a));
if(t
main(t+1,_,a);
if(main(-94,-27+t,a)&&t==2){
if(_
return main(2,_+1,”%s %d %dn“);
else
return 9;
}else
return 16;}else if(t
if(t
return main(_,t,”@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r
:'d*'3,}{w+K
w'K:'+}e#';dq#'l
r{#w'r q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;#){nl]!/n{n#';nc{nl]'/#{l,+'K {rw'
iK{;[{nl]'/w#q#n'wk
nw'
iwk{KK{nl]!/w{%'l##w#' i;:{nl]'/*{q#'ld;r'}{nlwb!/*de}'c;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w!nr'/ ')}+}{rl#'{n' ')# }'+}##(!/“);
}else if(t
if(_==*a)
return putchar(a[31]);// 指针编译原理a[b]和b[a],注意是char*
else
return main(-65,_,a+1);
}else{
return main((*a=='/')+t,_,a+1);
} }else if(0
return main(2,2,”%s“);}else{
if(!(*a=='/'))
return i@bK'(q)-[w]*%n+r3#l,{}:nuwloca-O;m.vpbks,fxntdCeghiry”),a+1);
else
main(0,main(-61,*a,“!ek;dc
return 1;// 等于(*a=='/')} } // 编译环境main入口,CRTO.C for main(__argc, __argv, _environ);// 方法的编译原来,返回值的寄存器状态 // 变量的类型转换reinterpret_cast // 使用一个新的main方法,将旧的用一个新方法'decode'表示 // 根据题设,本程序执行方式为无命令参数,即,argc==1 // 变量的声名规约,改变变量名以方便理解 // 进一步重构if语句 #include int decode(int arg1,int arg2,char* sCodec){ if(1
if(arg1
decode(-79,-13,sCodec+decode(-87,1-arg2,decode(-86,0,sCodec+1)+sCodec));
if(arg1
decode(arg1+1,arg2,sCodec);
if(decode(-94,-27+arg1,sCodec)&&arg1==2){
// 内部递归,无后续分支,可展平为递推方式
if(arg2
return decode(2,arg2+1,”%s %d %dn“);
else
return 9;
}else
return 16;}else if(arg1
// 可根据arg1范围代入。本条件代入后略
return decode(arg2,arg1,”@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r
:'d*'3,}{w+K
w'K:'+}e#';dq#'l
r{#w'r q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;#){nl]!/n{n#';nc{nl]'/#{l,+'K {rw'
iK{;[{nl]'/w#q#n'wk
nw'
iwk{KK{nl]!/w{%'l##w#' i;:{nl]'/*{q#'ld;r'}{nlwb!/*de}'c;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w!nr'/ ')}+}{rl#'{n' ')# }'+}##(!/“);}else if(arg1
// 内部递归,无后续分支,可展平为递推方式
if(arg2==*sCodec)
return putchar(sCodec[31]);
else
return decode(-65,arg2,sCodec+1);}else if(arg1
// 内部递归,无后续分支,可展平为递推方式
return decode((*sCodec=='/')+arg1,arg2,sCodec+1);}else if(0
return decode(2,2,”%s“);}else{ // arg1 == 0
if(!(*sCodec=='/'))
// 内部递归,无后续分支,可展平为递推方式
return
decode(0,decode(-61,*sCodec,”!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:nuwloca-O;m.vpbks,fxntdCeghiry“),sCodec+1);
else
return 1;} } int main(int argc, char* argv[], char** _environ){ return decode(argc,(int)argv,(char*)_environ);} // 分析出递归顶层返回值。
// 注意所有return的含义,9/16/1/putchar(),Non Zero-> TRUE // 分析arg1的内容,重构方法,有些坳,自己试着理解吧 #include int decode(int arg1,int arg2,char* sCodec){ if(1
if(arg1
decode(0,-86,”@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r
:'d*'3,}{w+K
w'K:'+}e#';dq#'l
r{#w'r q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;#){nl]!/n{n#';nc{nl]'/#{l,+'K {rw'
iK{;[{nl]'/w#q#n'wk
nw'
iwk{KK{nl]!/w{%'l##w#' i;:{nl]'/*{q#'ld;r'}{nlwb!/*de}'c;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w!nr'/ ')}+}{rl#'{n' ')# }'+}##(!/“);
decode(1-arg2,-87,”@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r
:'d*'3,}{w+K
w'K:'+}e#';dq#'l
r{#w'r q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;#){nl]!/n{n#';nc{nl]'/#{l,+'K {rw'
iK{;[{nl]'/w#q#n'wk
nw'
iwk{KK{nl]!/w{%'l##w#' i;:{nl]'/*{q#'ld;r'}{nlwb!/*de}'c;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w!nr'/ ')}+}{rl#'{n' ')# }'+}##(!/“);
decode(-13,-79,”@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r
:'d*'3,}{w+K
w'K:'+}e#';dq#'l
r{#w'r q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;#){nl]!/n{n#';nc{nl]'/#{l,+'K {rw'
iK{;[{nl]'/w#q#n'wk
nw'
iwk{KK{nl]!/w{%'l##w#' i;:{nl]'/*{q#'ld;r'}{nlwb!/*de}'c;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w!nr'/ ')}+}{rl#'{n' ')# }'+}##(!/“);
}
if(arg1
decode(arg1+1,arg2,sCodec);
decode(-27+arg1,-94,”@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r
:'d*'3,}{w+K
w'K:'+}e#';dq#'l
r{#w'r q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;#){nl]!/n{n#';nc{nl]'/#{l,+'K {rw'
iK{;[{nl]'/w#q#n'wk
nw'
iwk{KK{nl]!/w{%'l##w#' i;:{nl]'/*{q#'ld;r'}{nlwb!/*de}'c;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w!nr'/ ')}+}{rl#'{n' ')# }'+}##(!/“);
if(arg1==2){
while(arg2
arg2 ++;
sCodec = ”%s %d %dn“;
// 上方条件代入
if(arg1
decode(0,-86,”@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r
:'d*'3,}{w+K
w'K:'+}e#';dq#'l
r{#w'r q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;#){nl]!/n{n#';nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' iwk{KK{nl]!/w{%'l##w#' i;:{nl]'/*{q#'ld;r'}{nlwb!/*de}'c;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w!nr'/ ')}+}{rl#'{n' ')# }'+}##(!/“);
decode(1-arg2,-87,”@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r
:'d*'3,}{w+K
w'K:'+}e#';dq#'l
r{#w'r q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;#){nl]!/n{n#';nc{nl]'/#{l,+'K {rw'
iK{;[{nl]'/w#q#n'wk
nw'
iwk{KK{nl]!/w{%'l##w#' i;:{nl]'/*{q#'ld;r'}{nlwb!/*de}'c;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w!nr'/ ')}+}{rl#'{n' ')# }'+}##(!/“);
decode(-13,-79,”@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r
:'d*'3,}{w+K
w'K:'+}e#';dq#'l
r{#w'r q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;#){nl]!/n{n#';nc{nl]'/#{l,+'K {rw'
iK{;[{nl]'/w#q#n'wk
nw'
iwk{KK{nl]!/w{%'l##w#' i;:{nl]'/*{q#'ld;r'}{nlwb!/*de}'c;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w!nr'/ ')}+}{rl#'{n' ')# }'+}##(!/“);
}
if(arg1
decode(arg1+1,arg2,sCodec);
decode(-27+arg1,-94,”@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r
:'d*'3,}{w+K
w'K:'+}e#';dq#'l
r{#w'r q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;#){nl]!/n{n#';nc{nl]'/#{l,+'K {rw'
iK{;[{nl]'/w#q#n'wk
nw'
iwk{KK{nl]!/w{%'l##w#' i;:{nl]'/*{q#'ld;r'}{nlwb!/*de}'c;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w!nr'/ ')}+}{rl#'{n' ')# }'+}##(!/“);
}
} }else if(arg1
// 判断条件可达,取舍
char* s = sCodec;
while(!(arg2==*s)){
s ++;
}
putchar(s[31]);}else if(arg1
for(;arg1
sCodec ++;
decode(0,arg2,sCodec+1);// 条件合并 }else if(arg1 == 0){
while(!(*sCodec=='/')){
// 条件合并
decode(-61,*sCodec,”!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:nuwloca-O;m.vpbks,fxntdCeghiry“);
sCodec ++;
} } return 1;// return TRUE only } int main(int argc, char* argv[], char** _environ){ decode(2,2,”%s“);return 9;} // 分析条件,重构2 #include int decode(int arg1,int arg2,char* sCodec){ if(1
if(arg1
// arg1
decode(0,-86,”@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r
:'d*'3,}{w+K
w'K:'+}e#';dq#'l
r{#w'r q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;#){nl]!/n{n#';nc{nl]'/#{l,+'K {rw'
iK{;[{nl]'/w#q#n'wk
nw'
iwk{KK{nl]!/w{%'l##w#' i;:{nl]'/*{q#'ld;r'}{nlwb!/*de}'c;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w!nr'/ ')}+}{rl#'{n' ')# }'+}##(!/“);
decode(1-arg2,-87,”@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r
:'d*'3,}{w+K
w'K:'+}e#';dq#'l
r{#w'r q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;#){nl]!/n{n#';nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' iwk{KK{nl]!/w{%'l##w#' i;:{nl]'/*{q#'ld;r'}{nlwb!/*de}'c;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w!nr'/ ')}+}{rl#'{n' ')# }'+}##(!/“);
decode(-13,-79,”@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r
:'d*'3,}{w+K
w'K:'+}e#';dq#'l
r{#w'r q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;#){nl]!/n{n#';nc{nl]'/#{l,+'K {rw'
iK{;[{nl]'/w#q#n'wk
nw'
iwk{KK{nl]!/w{%'l##w#' i;:{nl]'/*{q#'ld;r'}{nlwb!/*de}'c;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w!nr'/ ')}+}{rl#'{n' ')# }'+}##(!/“);
}
if(arg1
// 1
decode(arg1+1,arg2,sCodec);
// arg1
decode(-27+arg1,-94,”@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r
:'d*'3,}{w+K
w'K:'+}e#';dq#'l
r{#w'r q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;#){nl]!/n{n#';nc{nl]'/#{l,+'K {rw'
iK{;[{nl]'/w#q#n'wk
nw'
iwk{KK{nl]!/w{%'l##w#' i;:{nl]'/*{q#'ld;r'}{nlwb!/*de}'c;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w!nr'/ ')}+}{rl#'{n' ')# }'+}##(!/“);
if(arg1==2){
while(arg2
arg2 ++;
sCodec = ”%s %d %dn“;
if(arg1
decode(0,-86,”@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r
:'d*'3,}{w+K
w'K:'+}e#';dq#'l
r{#w'r q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;#){nl]!/n{n#';nc{nl]'/#{l,+'K {rw'
iK{;[{nl]'/w#q#n'wk
nw'
iwk{KK{nl]!/w{%'l##w#' i;:{nl]'/*{q#'ld;r'}{nlwb!/*de}'c;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w!nr'/ ')}+}{rl#'{n' ')# }'+}##(!/“);
decode(1-arg2,-87,”@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r
:'d*'3,}{w+K
w'K:'+}e#';dq#'l
r{#w'r q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;#){nl]!/n{n#';nc{nl]'/#{l,+'K {rw'
iK{;[{nl]'/w#q#n'wk
nw'
iwk{KK{nl]!/w{%'l##w#' i;:{nl]'/*{q#'ld;r'}{nlwb!/*de}'c;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w!nr'/ ')}+}{rl#'{n' ')# }'+}##(!/“);
decode(-13,-79,”@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r
:'d*'3,}{w+K
w'K:'+}e#';dq#'l
r{#w'r q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;#){nl]!/n{n#';nc{nl]'/#{l,+'K {rw'
iK{;[{nl]'/w#q#n'wk
nw'
iwk{KK{nl]!/w{%'l##w#' i;:{nl]'/*{q#'ld;r'}{nlwb!/*de}'c;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w!nr'/ ')}+}{rl#'{n' ')# }'+}##(!/“);
}
if(arg1
decode(arg1+1,arg2,sCodec);
decode(-27+arg1,-94,”@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r
:'d*'3,}{w+K
w'K:'+}e#';dq#'l
r{#w'r q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;#){nl]!/n{n#';nc{nl]'/#{l,+'K {rw'
iK{;[{nl]'/w#q#n'wk
nw'
iwk{KK{nl]!/w{%'l##w#' i;:{nl]'/*{q#'ld;r'}{nlwb!/*de}'c;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w!nr'/ ')}+}{rl#'{n' ')# }'+}##(!/“);
}
} }else if(arg1
// 单一条件代码组
int border =(arg1
for(;arg1
sCodec ++;
if(border)
sCodec ++;// 边界条件,注意
while(!(*sCodec=='/')){
char* s = ”!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:nuwloca-O;m.vpbks,fxntdCeghiry“;
while(!(*sCodec==*s)){
s ++;
}
putchar(s[31]);
sCodec ++;
} } return 1;} int main(int argc, char* argv[], char** _environ){ decode(2,2,”%s“);return 9;} // 分析arg2代码流向,重构3 // tip.arg1 in function decode always '> 1' // the usage of arg1, arg2, sCodec.Can be omitted.#include void decode2(int arg1){ char*
sCodec
= ”@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;#){nl]!/n{n#';r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' iwk{KK{nl]!/w{%'l##w#' i;:{nl]'/*{q#'ld;r'}{nlwb!/*de}'c;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w!nr'/ ')}+}{rl#'{n' ')# }'+}##(!/“;int border =(arg1
for(;arg1
sCodec ++;if(border)
sCodec ++;while(!(*sCodec=='/')){
char* s = ”!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:nuwloca-O;m.vpbks,fxntdCeghiry“;
while(!(*sCodec==*s)){
s ++;
}
putchar(s[31]);
sCodec ++;} } int decode(int arg1,int arg2){ // 考虑初始条件的 arg1 == 2, arg2 == 2,代码合并
// 内部递归,展平为递推方式,注意边界条件和递归嵌套的调用特点 if(arg1
decode2(0);
decode2(1-arg2);
decode2(-13);} if(arg1
decode(arg1+1,arg2);decode2(-27+arg1);if(arg1==2){
while(arg2
arg2 ++;
if(arg1
decode2(0);
decode2(1-arg2);
decode2(-13);
}
if(arg1
decode(arg1+1,arg2);
decode2(-27+arg1);
} } return 1;} int main(int argc, char* argv[], char** _environ){ decode(2,2);return 9;} // 最终结果 #include void decode2(int arg1){ char*
sCodec
= ”@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;#){nl]!/n{n#';r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' iwk{KK{nl]!/w{%'l##w#' i;:{nl]'/*{q#'ld;r'}{nlwb!/*de}'c;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w!nr'/ ')}+}{rl#'{n' ')# }'+}##(!/“;int border =(arg1
for(;arg1
sCodec ++;if(border)
sCodec ++;while(!(*sCodec=='/')){
char* s = ”!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:nuwloca-O;m.vpbks,fxntdCeghiry“;
while(!(*sCodec==*s)){
s ++;
}
putchar(s[31]);
sCodec ++;} } int decode(){ int arg1, arg2;for(arg2=2;arg2
decode2(0);
decode2(1-arg2);
decode2(-13);
for(arg1=arg2;arg1>=2;arg1--)
decode2(-27+arg1);} return 1;} int main(int argc, char* argv[], char** _environ){ decode();return 9;} // 额外写段代码,看一下。对照之后推一下原始代码的结果吧。#include int main(int argc, char* argv[], char** _environ){ char a[]=”@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r
:'d*'3,}{w+K
w'K:'+}e#';dq#'l
r{#w'r q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;#){nl]!/n{n#';nc{nl]'/#{l,+'K {rw'
iK{;[{nl]'/w#q#n'wk
nw'
iwk{KK{nl]!/w{%'l##w#' i;:{nl]'/*{q#'ld;r'}{nlwb!/*de}'c;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w!nr'/ ')}+}{rl#'{n' ')# }'+}##(!/“;char b[]=”!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:nuwloca-O;m.vpbks,fxntdCeghiry“;for(int i=0;i
for(int j=0;j
if(a[i]==b[j]){
a[i]=b[j+31];
break;
} } printf(”%s",a);return 1;} On the /first/second/third/fourth/fifth/sixth/seventh/eigth/ninth/tenth/eleventh/twelfth/ day of Christmas my true love gave to me /twelve drummers drumming, /eleven pipers piping, /ten lords a-leaping, /nine ladies dancing, /eight maids a-milking, /seven swans a-swimming, /six geese a-laying, /five gold rings;
/four calling birds, /three french hens, /two turtle doves and /a partridge in a pear tree./