又黄又www的网站_青青草.com_在线亚洲美日韩_九九九国产视频_√天堂8资源中文在线_一区二区三区免费网站_久久久久国产一区二区三区_人妻激情偷乱视频一区二区三区_一本到在线视频

計算機二級C技巧:加密/弄亂C源代碼

發布時間:2011-08-29 共1頁

  下面是一個Step by Step的教程,教你如何把一個清晰的代碼變得復雜難懂的。當然,這只是一個“簡明教程”了。還是那句話——“本文僅供朋友們“消遣作樂”,如果你要覺得有意思的話,頂個貼。如果你覺得沒什么意思的話,一笑了之。僅供娛樂而已,不必太過認真。”
  正常程序
  下面是一個找出素數的程序:
  void primes(int cap)
  {
  int i, j, composite;
  for(i = 2; i < cap; ++i) {
  composite = 0;
  for(j = 2; j * j < i; ++j) {
  composite += !(i % j);
  }
  if(!composite){
  printf("%d\t", i);
  }
  }
  }
  int main()
  {
  primes(100);
  }
  下面我們來看看如何把上面這段代碼搞得復雜難懂。
  第一步、把for變成while
  通常來說,for循壞要以while循壞簡單一些,上面的程序有二重for循環,我們不但要把其變成while循環,而且還要把二重循環的變成一重的循環,然后使用大量的if-else語句來判斷。
  void primes(int cap)
  {
  int i, j, composite, t = 0;
  while(t < cap * cap) {
  i = t / cap;
  j = t++ % cap;
  if(i <= 1);
  else if(!j)
  composite = j;
  else if(j == i && !composite)
  printf("%d\t",i);
  else if(j > 1 && j < i)
  composite += !(i % j);
  }
  }
  int main()
  {
  primes(100);
  }
  第二步,把循壞變成遞歸
  遞歸在某些時候是可以把代碼變得簡單,但大多數的情況下是把代碼變得復雜,而且很沒有效率。下面是把上面的while循環變成了遞歸。變成了遞歸后,函數的參數都變成3個了。
  void primes(int cap, int t, int composite)
  {
  int i,j;
  i = t / cap;
  j = t % cap;
  if(i <= 1)
  primes(cap,t+1,composite);
  else if(!j)
  primes(cap,t+1,j);
  else if(j == i && !composite)
  (printf("%d\t",i), primes(cap,t+1,composite));
  else if(j > 1 && j < i)
  primes(cap,t+1, composite + !(i % j));
  else if(t < cap * cap)
  primes(cap,t+1,composite);
  }
  int main()
  {
  primes(100,0,0);
  }
  第三步,弄亂代碼結構/使用沒有含義的變量名
  關于如何弄亂代碼結構,其中一個小技巧是,使用“?”表達式代替if-else語句。
  void primes(int m, int t, int c)
  {
  int i,j;
  i = t / m;
  j = t % m;
  (i <= 1) ? primes(m,t+1,c) : (!j) ? primes(m,t+1,j) : (j == i && !c) ?
  (printf("%d\t",i), primes(m,t+1,c)) : (j > 1 && j < i) ?
  primes(m,t+1,c + !(i % j)) : (t < m * m) ? primes(m,t+1,c) : 0;
  }
  int main()
  {
  primes(100,0,0);
  }
  第四步,取消臨時變量
  臨時變量一般用來保存反復使用的一個表達式的值。使用大量重復的表達式來取消這些臨時變量的也可以讓代碼復雜起來。
  void primes(int m, int t, int c)
  {
  ((t / m) <= 1) ? primes(m,t+1,c) : !(t % m) ? primes(m,t+1, t % m) :
  ((t % m)==(t / m) && !c) ? (printf("%d\t",(t / m)), primes(m,t+1,c)) :
  ((t % m)> 1 && (t % m) < (t / m)) ? primes(m,t+1,c + !((t / m) % (t % m))) :
  (t < m * m) ? primes(m,t+1,c) : 0;
  }  
  int main()
  {
  primes(100,0,0);
  }
  第五步,繼續弄亂變量名
  我們知道,下劃線是合法的變量名,所以,我們不妨用__,___,____來代替m,t,c。函數名也可以使用下劃線來代替。讓我們來看看求素數的函數能變成什么。
  void _(int __, int ___, int ____)
  {
  ((___ / __) <= 1) ? _(__,___+1,____) : !(___ % __) ? _(__,___+1,___ % __) :
  ((___ % __)==(___ / __) && !____) ? (printf("%d\t",(___ / __)),
  _(__,___+1,____)) : ((___ % __) > 1 && (___ % __) < (___ / __)) ?
  _(__,___+1,____ + !((___ / __) % (___ % __))) : (___ < __ * __) ?
  _(__,___+1,____) : 0;
  }
  int main()
  {
  _(100,0,0);
  }
  第六步,移除常量
  在上面的程序中,還有一些常量,你可以通過增加一個宏定義,或是增加一個函數的形參來取代這一常量。
  void _(int __, int ___, int ____, int _____)
  {
  ((___ / __) <= _____) ? _(__,___+_____,____,_____) : !(___ % __) ? _(__,___+_____,___ % __, _____) :
  ((___ % __)==(___ / __) && !____) ? (printf("%d\t",(___ / __)),
  _(__,___+_____,____,_____)) : ((___ % __) > _____ && (___ % __) < (___ / __)) ?
  _(__,___+_____,____,_____ + !((___ / __) % (___ % __))) : (___ < __ * __) ?
  _(__,___+_____,____,_____) : 0;
  }
  int main() {
  _(100,0,0,1);
  }
  程序到這里應該差不多了。還是那句話——“每一個程序員都有把源代碼弄復雜的潛質”,大家好自為之。

百分百考試網 考試寶典

立即免費試用
最新国产精品亚洲| 美乳美女在线观看香蕉| 成人高潮片免费视频| 欧美熟妇交换久久久久久分类| 久久全国免费久久青青小草| 三级a性做爰视频| 簧片在线观看| 国产高清在线a视频大全| 欧美激情精品| 欧美国产日本| 高清不卡在线观看| 天天影视色香欲综合网老头| 亚洲福利视频久久| 欧美亚洲在线播放| 婷婷五月色综合| 天天摸天天舔天天操| 破处女黄色一级片| 色噜噜一区二区三区| 台湾十八成人网| 欧美日韩经典丝袜| 免费毛片在线不卡| 韩国午夜理伦三级不卡影院| 亚洲在线中文字幕| 亚洲色图校园春色| 亚洲mm色国产网站| 亚洲国产精品久久久久爰色欲| 亚洲做受高潮无遮挡| 国产精品视频无码| free亚洲| 欧美www.| 夜夜嗨av一区二区三区网站四季av| 久久这里只有精品首页| 欧美日韩精品电影| 97在线视频观看| 蜜桃视频成人在线观看| 制服 丝袜 综合 日韩 欧美| 国产黄色美女视频| 922tv免费观看在线| 日韩黄色在线| 日韩av在线播放中文字幕| 一区二区免费看| 国产一区二区三区网站| 国产综合18久久久久久| 亚洲高清在线不卡| 中文文字幕一区二区三三| 九九热视频免费在线观看| 欧美v亚洲v| 欧美日韩亚洲一区| 亚洲色图欧洲色图婷婷| 亚洲天堂第一页| 国产在线一区二区三区播放| 色欲欲www成人网站| 97人妻一区二区精品免费视频| 福利在线白白| 精品亚洲a∨一区二区三区18| 麻豆久久久久久久| 欧美日韩国产精品成人| 91精品国产自产在线| a在线观看免费视频| 精品国产xxx| 天堂在线视频中文网| 亚洲精品aⅴ| 97成人超碰视| 在线播放日韩欧美| 国产免费一区二区三区四在线播放 | 在线免费国产| 欧美三级电影在线| 久久久久久久久岛国免费| 亚洲天堂影视av| 在线观看一区二区三区三州| 欧美成欧美va| 超碰色偷偷男人的天堂| 男女小视频在线观看| 少妇精品无码一区二区| 国产午夜精品在线观看| 黄色免费大片| 亚洲人成77777| 国产精品久久久一本精品| www.黄在线| 成人在线免费观看视视频| 色999日韩| 热re久久精品国产99热| 肉大捧一出免费观看网站在线播放 | 一级二级三级在线观看| 日本xxxxx18| 91一区在线观看| 黄色免费看片| 韩国三级丰满少妇高潮| 国产一区二区三区四区福利| 欧美激情综合色综合啪啪| 国产精品久久久午夜夜伦鲁鲁| 中文字幕在线看视频国产欧美| 日韩一区二区三区精品| 黑人性受xxxx黑人xyx性爽| 视频一区视频二区视频三区视频四区国产| 99精品国产一区二区青青牛奶| 99免费看香蕉视频| 日韩av播放器| 国产无一区二区| 巨大黑人极品videos精品| 日本xxxwww免费视频| 人妻av一区二区| 香港三级日本三级a视频| 亚洲a级在线播放观看| 日韩精品一区二区三区swag | 日韩欧美一区二区免费| 免费欧美激情| 99久久精品国产一区色| 欧美性天天影院| 亚洲综合成人网| 牛牛影视一区二区三区免费看| 国产精品入口麻豆完整版| 色偷偷偷亚洲综合网另类| 在线成人国产| 久久国产情侣| 在线不卡av电影| 丝袜人妻一区二区三区| 97高清免费视频| 国产精品欧美一区喷水| 久久久久久久久成人| 免费激情小视频| 日本性生活一级片| 欧美性色黄大片| 久久精品国产一区二区三区免费看| 欧洲日本在线| 男女毛片免费视频看| 国产人妻一区二区| 日本一本草久p| 国产高清在线不卡| 国产精品欧美一级免费| 全球av集中精品导航福利| 日韩视频在线观看一区| 国产美女网站在线观看| 中文字幕日本精品| 国产日韩成人精品| 草草视频在线一区二区| 国产5g影院天天爽天天看| 一个色综合久久| 91久久久久久久久久久| 色偷偷888欧美精品久久久| 动漫精品一区二区| 亚洲福利精品| **国产精品| 成本人h片动漫网站在线观看| 亚洲av电影一区| 亚洲一区三区| 狠狠色狠狠色综合日日五| 91看片淫黄大片一级| 少妇精品久久久一区二区| 日本在线观看高清完整版| 你懂的视频在线| 麻豆传媒视频在线观看免费| a√资源在线| 很黄的网站在线观看| av网站在线免费播放| 久草在线看片| 中文字幕av中文字幕| 亚洲av成人无码久久精品| 黄色一级一级片| 九九九久久国产免费| 欧美日韩高清一区二区三区| 久久精品免视看| 亚洲欧美日韩国产一区| 国产亚洲一区二区手机在线观看 | 久久精品一区二区三区四区五区| 日日干日日操日日射| 亚洲一区在线不卡| 免费在线国产精品| 在线观看日韩欧美| 午夜精品aaa| 亚洲成av人片观看| 悠悠色在线精品| 宅男在线一区| 97caopron在线视频| 免费在线看黄| 羞羞视频在线免费国产| 在线观看a视频| 欧美gv在线观看| 国产日韩在线观看视频| 在线免费观看欧美| 国产精品77777| 中文字幕在线不卡视频| 亚洲女爱视频在线| 日韩欧美国产精品| 91成人在线精品| 欧美在线免费视屏| 精品日韩中文字幕| 91亚洲永久精品| 国产精品免费免费| av中文字幕一区| 久久综合九色综合97婷婷女人| 久久久久亚洲蜜桃| 老司机一区二区三区| 天堂久久av| 成人自拍在线| 西野翔中文久久精品字幕| 日韩精品免费| 国产成人精品免费网站| 国产精品免费丝袜| 亚洲精品欧美在线|