• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            sduzgz

            素數查找

             

            //應該注意的是定義數組本身的大小,數組不要越界,循環(huán)的初始值及結束值設置
            #include<iostream>
            #include
            <cstdlib>
            #include
            <cmath>
            #define N (100)
            using namespace std;

            int main()
            {
            int i,j;
            bool prim[N];
            /*for(i=0;i<N;i++)
            {
            prim[i]=true;
            }
            */

            memset(
            &prim,true,sizeof(prim));
            //memset(prim,true,sizeof(prim));這個也可以,為什么呢?
            int M=sqrt(N);
            for(i=2;i<=M;i++)
            {
            for(j=i+i;j<=N;j=j+i)
            {
            prim[j
            -1]=false;
            }

            }

            for(i=2;i<N;i++)
            {
            if(prim[i]==true)
            {
                cout
            <<i+1<<' ';
            }

            }

            cout
            <<endl;
            system(
            "pause");
            return 0;
            }

            posted on 2010-09-25 18:49 sduzgz 閱讀(514) 評論(4)  編輯 收藏 引用

            Feedback

            # re: 素數查找 2010-09-28 19:04 李現(xiàn)民

            不要使用using namespace std; 因為std命名空間里的東西全是一些常見的名字, 像string, vector, list等等,直接使用std::string,以防止重名

            #define N 100可以使用const常量代替(并且,盡量放到一個空的namespace下),否則你需要定義成#define N (100),加括號,這是常識

            prim[i]=true;的那個循環(huán)可以改成memset(&prim, 1, sizeof prim)

            for(i=2;i<=sqrt(N);i++)---請把sqrt(N)拿到循環(huán)外面來

            看你寫代碼的樣子,應該是vc6吧,把int i,j;放后面點吧,不過在在未使用的地方就定義變量,比如int j完全可以放到循環(huán)內部定義
              回復  更多評論   

            # re: 素數查找 2010-09-28 22:11 張愛靜

            牛人啊,我這習慣確實很多問題啊,命名空間那個我可以明白,你說的prim[i]那個循環(huán)還有最后sqrt(N)拿到外面,改成那樣有什么好處啊,雖然覺得好,但是不知道為什么。@李現(xiàn)民
              回復  更多評論   

            # re: 素數查找 2010-09-29 10:14 李現(xiàn)民

            memset是一種高效的數組初始化方式,它本身是用匯編寫的,vc下應該是位于memset.asm中,當你使用部分初始化時, 比如int a[100]={0}, 你會看到它的匯編代碼其實用的就是memset。

            把sqrt(N)拿到外面那個, 你不覺得你的代碼中每次循環(huán)sqrt(N)都會調用一遍嘛?當然, 現(xiàn)代編譯器的話,這種簡單的調用可以被優(yōu)化掉,但作為碼農, 你不應該寫成這樣  回復  更多評論   

            # re: 素數查找 2010-09-29 10:25 張愛靜

            @李現(xiàn)民
            奧,茅塞頓開啊,謝謝啊!
              回復  更多評論   


            My Links

            Blog Stats

            常用鏈接

            留言簿

            隨筆檔案

            搜索

            最新評論

            • 1.?re: 素數查找
            • @李現(xiàn)民
              奧,茅塞頓開啊,謝謝啊!
            • --張愛靜
            • 2.?re: 素數查找
            • 評論內容較長,點擊標題查看
            • --李現(xiàn)民
            • 3.?re: 素數查找
            • 牛人啊,我這習慣確實很多問題啊,命名空間那個我可以明白,你說的prim[i]那個循環(huán)還有最后sqrt(N)拿到外面,改成那樣有什么好處啊,雖然覺得好,但是不知道為什么。@李現(xiàn)民
            • --張愛靜
            • 4.?re: 素數查找
            • 評論內容較長,點擊標題查看
            • --李現(xiàn)民
            • 5.?re: 接口,虛函數及純虛函數
            • 分得太細反而著了相, 不要太看重語法上的區(qū)別,這些東西都是基于應用而衍生的,多研究一些設計的東西, 比仔細區(qū)分這些語法概念要合算
            • --李現(xiàn)民

            閱讀排行榜

            評論排行榜

            欧美与黑人午夜性猛交久久久 | 久久亚洲国产精品成人AV秋霞| 91精品婷婷国产综合久久| 久久久久久午夜精品| 精品久久久久久无码人妻热| 亚洲七七久久精品中文国产| 久久国产亚洲精品无码| 精品久久久久久无码中文野结衣| 99久久伊人精品综合观看| 欧美亚洲国产精品久久久久| 久久91精品久久91综合| 久久精品国产99国产精品澳门| 欧洲性大片xxxxx久久久| 日本精品久久久久久久久免费| 久久久久国产视频电影| 久久久精品午夜免费不卡| 久久久久99精品成人片欧美| 狠狠综合久久综合88亚洲| 亚洲精品乱码久久久久久| 久久中文骚妇内射| 久久伊人精品青青草原高清| 人妻精品久久久久中文字幕69| 久久久久夜夜夜精品国产| 久久ZYZ资源站无码中文动漫| 久久香蕉国产线看观看99| 亚洲国产日韩欧美综合久久| 亚洲Av无码国产情品久久| 久久精品国产亚洲77777| 久久久网中文字幕| 久久夜色撩人精品国产| 午夜精品久久久久| 久久久一本精品99久久精品88| 久久精品国产亚洲av麻豆蜜芽| 婷婷久久综合| 久久中文字幕人妻丝袜| 国产精品成人久久久| 三级片免费观看久久| 久久久久人妻一区精品果冻| 亚洲狠狠久久综合一区77777 | 99久久无码一区人妻a黑| 99久久国语露脸精品国产|