g++的編譯器真強大
#include <cstdio> #include <ctime> #define NN 39000000 int c=0; int t[NN+1]={0}; int getsteps2(long long n) { int nn=n; int i=1; for(;n!=1;i++) { long long temp=((n &1) ==0)?(n/2):(n*3+1); //3.510 2M if (temp<nn)// && temp>0) { int len= t[temp]; if (len!=0) {//c++;printf("%d:%d ",nn,temp); return (i+len);} } n=temp; } return i; } int main() { int maxstep=1; int maxpos=1; int n=2; t[1]=1; int tm=clock(); for(;n<=NN;n++) { int step=t[n/2]+1; t[n]=step; if (step>maxstep){ maxstep=step; maxpos=n; } n++; step=getsteps2(n); t[n]=step; if (step>maxstep){ maxstep=step; maxpos=n; } } printf("%dms\n",clock()-tm); printf("maxstep=%d ,at %d,caches%d\n",maxstep,maxpos,c); return 1; }
報錯
D:\>g++ p14t2.cpp -O2 p14t2.cpp: In function 'int main()': p14t2.cpp:42:10: warning: iteration 19499999u invokes undefined behavior [-Waggressive-loop-optimizations] t[n]=step; ^ p14t2.cpp:32:7: note: containing loop for(;n<=NN;n++) ^
按照提示把<=N改為< N就不報錯了。
相關文章
- G++編譯連結的那些事!G++的特殊使用方法[常用]編譯
- linux下gcc/g++編譯用法LinuxGC編譯
- 用ccache加速你的gcc/g++編譯(轉)GC編譯
- UltraEdit文字編輯器編寫強大的宏教程
- GCC/G++學習筆記 - 1 - 執行預編譯GC筆記編譯
- gcc 和 g++ 的聯絡和區別,使用 gcc 編譯 c++GC編譯C++
- VideoPad for Mac(強大的影片編輯器)IDEMac
- gcc g++支援C++11 標準編譯及其區別GCC++編譯
- 編譯器的編譯基本過程編譯
- gcc 編譯器與 clang 編譯器GC編譯
- __cxa_pure_virtual報錯(g++編譯虛擬函式時)編譯函式
- Darkroom for Mac(強大的照片和視訊編輯器)OOMMac
- gcc或g++的編譯選項 -shared -fPIC 與 -g -rdynamic 部分轉載GC編譯
- 淺談彙編器、編譯器和直譯器編譯
- [譯]iOS編譯器iOS編譯
- 編譯器的自展和自舉、交叉編譯編譯
- FreeBSD中的GNU C編譯器--編譯器GCC(轉)編譯GC
- Screenium 3 for Mac(強大的螢幕錄製編輯器)Mac
- sublime text Mac版功能強大的程式碼編輯器Mac
- GCC編譯器的使用GC編譯
- 一張圖解析 編譯器編譯流程圖解編譯
- CUDAFORTRAN編譯器編譯
- vue編譯器Vue編譯
- 程式碼線上編譯器(上)- 編輯及編譯編譯
- Linux系統 g++ 連結 libopencv_world.a 靜態庫編譯程式LinuxOpenCV編譯
- Go編譯器簡介【譯】Go編譯
- Ubuntu 15.04編譯Android 6.0.1原始碼-Nexus5真機編譯Ubuntu編譯Android原始碼
- CMM編譯器和C編譯器過程呼叫實現的比較編譯
- Swift iOS : 編譯器的智慧SwiftiOS編譯
- Phalanger—PHP的.NET編譯器PHP編譯
- 編譯器是如何工作的?編譯
- 編譯器的工作過程編譯
- 編譯器如何生成彙編編譯
- ijkplayer編譯so庫真沒那麼難編譯
- CSS預編譯器CSS編譯
- 富文字編譯器編譯
- JavaScript編譯器BabelJavaScript編譯Babel
- 編譯器相關編譯