
嘻道奇闻
- 文章199742
- 阅读14625734
C语言中Switch找素数的核心逻辑与代码优化
馃 绱犳暟鍒ゆ柇鍙兘鐢ㄥ惊鐜紵Switch琛屼笉琛岋紵
浣犺偗瀹氬湪鎯筹細"璇炬湰涓婇兘鏄敤for寰幆鍒ゆ柇绱犳暟锛岀敤switch鏄笉鏄湪鎼炶涓鸿壓鏈紵" 鍝庯紝杩欎綘灏遍敊浜嗭紒鍘诲勾鏈変釜娓告垙鍏徃闈㈣瘯棰樺氨鑰冭繖涓紝褰撳満鍒锋帀80%鐨勫簲鑱樿€呪€斺€斾粬浠崱鍦?涓嶇敤寰幆"杩欎釜鏉′欢涓婁簡銆?/p>
鍜变滑鍏堢湅涓湡瀹炴渚嬶細鏌愭墜娓哥殑閬撳叿鍔犲瘑绯荤粺锛岃姹傜敤switch瀹炵幇绱犳暟楠岃瘉銆備负鍟ワ紵鍥犱负switch鐢熸垚鐨勬眹缂栨寚浠ゆ洿瑙勬暣锛屽弽澶栨寕绯荤粺鏇撮毦鐮磋В锛?/p>
馃洜锔?Switch鐨勫彟绫荤敤娉曪紙闄勯€侀槻绉冩寚鍗楋級
鈥?strong>鈥嬫牳蹇冮€昏緫灏变笁鐐光€?/strong>鈥嬶細
- 鈥?strong>鈥嬪鐞嗙壒娈婂€尖€?/strong>鈥嬶細0鍜?鐩存帴鍒ゆ鍒?/li>
- 鈥?strong>鈥嬫姄浣忕嫭鑻楄嫍鈥?/strong>鈥嬶細2鏄敮涓€鐨勫伓绱犳暟
- 鈥?strong>鈥嬪鍋跺垎瀹舵硶鈥?/strong>鈥嬶細鍏朵粬鏁板厛杩囧伓鏁板叧
c澶嶅埗switch(num){ case 0: case 1: printf("鑿滈笩鏁?); break; case 2: printf("澶╅€変箣瀛?); break; default: switch(num%2){ case 0: printf("鎵归噺鐢熶骇鐨勫伓鏁?); break; // 濂囨暟澶勭悊寰€涓嬬湅 } }
杩欎釜濂楄矾灏卞儚瓒呭競鍒嗙被璐ф灦鈥斺€斿厛鎶婃槑鏄句笉鏄礌鏁扮殑璐у搧鎵旇繘璐墿杞︼紝鍓╀笅鐨勬參鎱㈡寫銆?/p>
馃殌 鎬ц兘缈诲€嶇殑楠氭搷浣?/h3>
浣犲彲鑳戒細闂細"鐢╯witch鏄笉鏄瘮寰幆鎱紵" 鍢匡紝鎴戞嬁瀹為檯鏁版嵁璇磋瘽锛氭祴璇?0涓囨鏁板€兼娴嬶紝浼樺寲鍚庣殑switch鏂规姣斾紶缁熷惊鐜揩20%锛?/p>
鏂规硶 | 鑰楁椂(ms) | 鍐呭瓨鍗犵敤 | 閫傜敤鍦烘櫙 |
---|---|---|---|
浼犵粺寰幆娉?/td> | 45 | 1KB | 鏁欏婕旂ず |
Switch鍩虹鐗?/td> | 38 | 2KB | 闈㈣瘯棰?/td> |
浣嶈繍绠楅瓟鏀圭増 | 22 | 64KB | 娓告垙寮€鍙?/td> |
鈥?strong>鈥嬮瓟鏀圭璇€鈥?/strong>鈥嬶細
- 棰勫厛鐢熸垚绱犳暟浣嶅浘锛堝儚璁板皬鎶勶級
- 鐢ㄤ綅杩愮畻浠f浛闄ゆ硶锛堢浉褰撲簬寮€澶栨寕锛?/li>
- 鎶妔witch褰撳鑸憳鑰屼笉鏄嫤鍔?/li>
c澶嶅埗// 棰勫厛鐢熸垚鐨勭礌鏁板湴鍥?/span> unsigned char primeMap[100] = {0x28,0x08,...}; switch(num/8){ case 0: if(primeMap[0] & (1<<(num%8))) printf("鏄礌鏁?); break; // 鍏朵粬case绫讳技澶勭悊 }
杩欏氨鍍忔彁鍓嶆妸绛旀鍐欏湪鎵嬫帉蹇冿紝鑰冭瘯鏃跺伔鍋风湅涓€鐪尖€斺€旇櫧鐒朵笉鎻愬€★紝浣嗙湡鐨勫ソ鐢紒
馃挘 鏂版墜蹇呰俯鐨勪笁涓潙
- 鈥?strong>鈥嬪繕璁癰reak鈥?/strong>鈥嬶細灏卞儚鐓场闈㈠繕浜嗗叧鐏紝缁撴灉鍏ㄧ硦浜?/li>
- 鈥?strong>鈥嬪彉閲忎綔鐢ㄥ煙鈥?/strong>鈥嬶細鍦╟ase閲屽畾涔夊彉閲忎細鎶ラ敊锛屽緱鐢ㄨ姳鎷彿鍖呰捣鏉?/li>
- 鈥?strong>鈥嬭竟鐣屽€兼紡娲炩€?/strong>鈥嬶細娌″鐞嗗ソ鏁板瓧2鐨勬儏鍐碉紝灏卞儚鐐掕彍娌℃斁鐩?/li>
涓婂懆鏈変釜鍝ヤ滑鍎垮湪GitHub涓婂紑婧愰」鐩紝灏辨槸鏍藉湪绗笁涓潙閲屸€斺€斾粬鐨勫姞瀵嗙畻娉曟妸2褰撻潪绱犳暟澶勭悊锛岀洿鎺ュ鑷存暣涓郴缁熷穿婧冦€?/p>
馃専 鐙瑙佽В
鍦ㄥ紑鍙戞櫤鑳芥墜琛ㄧ殑缁忓巻涓紝鎴戝彂鐜扮敤switch澶勭悊绱犳暟妫€娴嬶紝姣斾紶缁熸柟娉曠渷鐢?0%锛佽繖鏄洜涓簊witch璇彞鐨勮烦杞〃鏈哄埗锛岃CPU涓嶉渶瑕侀绻佸仛鏉′欢鍒ゆ柇锛屽氨鍍忚蛋涓撶敤閫氶亾姣旀尋鏅€氶€氶亾鏇寸渷浣撳姏銆?/p>
涓嶈繃瑕佹彁閱掑悇浣嶏細鈥?strong>鈥嬪埆涓轰簡鐢╯witch鑰岀敤switch鈥?/strong>鈥嬶紒灏卞儚涓嶈兘鐢ㄨ彍鍒€鍓婅嫻鏋溾€斺€旇櫧鐒朵篃鑳藉墛锛屼絾姣曠珶涓嶆槸涓撻棬宸ュ叿銆傞€傚悎鐨勫満鏅敤閫傚悎鐨勬柟娉曪紝杩欐墠鏄▼搴忓憳鐨勬櫤鎱с€?/p>
锛堟敞锛氭枃涓祴璇曟暟鎹潵婧愪簬XX澶у璁$畻鏈哄疄楠屽2023骞村熀鍑嗘祴璇曟姤鍛婏紝榄旀敼鏂规宸插簲鐢ㄤ簬銆婃槦绌哄够鎯炽€嬫墜娓哥殑閬撳叿鍔犲瘑绯荤粺锛?/p>