日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

今日c++练手之寻找n个连续的合数

發布時間:2025/3/15 c/c++ 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 今日c++练手之寻找n个连续的合数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

算法的關鍵在于如何尋找連續的合數重點在連續,所以需要有標志位。只有連續的n個數都是合數才可以退出這個循環。并且找的這個數組每檢測n個數都要重新開始計算。具體代碼如下

#include<iostream> using namespace std; class noprime {int n;int *p;public:noprime(int n1){n=n1;p=new int[n1];}int yes(int x){for(int i=2;i<x/2;i++)if(x%i==0)return 1;return 0;}void search();void print(){for(int i=0;i<n;i++)cout<<p[i]<<'\t';cout<<endl;}~noprime(){if(p)delete[]p;}} ;void noprime::search()//算法的關鍵部分與yes函數結合使用{int i,j,t=1;for(i=3;t=1;i++){// t=1;for(j=i;j<i+n;j++){p[j-i]=j;if(yes(j)==0)t=0;}if(t==1)break;}}int main(){noprime num(20);num.search();num.print();return 0;}

此程序包含的一個知識點:析構函數

析構函數是執行與構造函數相反的操作:釋放對象使用的資源,并銷毀非static成員。

析構函數的特點:

1.函數名是在類名前加上~,無參數且無返回值。

2.一個類只能有且有一個析構函數,如果沒有顯式的定義,系統會生成一個缺省的析構函數(合成析構函數)。

3.析構函數不能重載。每有一次構造函數的調用就會有一次析構函數的調用。

此程序構造函數成員中有動態開辟的指針成員,在析構函數中對它進行了delete,如果不顯式的定義拷貝構造函數,當你這樣:noprime num2(num1)來創建num2時,因為默認的拷貝構造函數是淺拷貝,這樣做的結果會使num2的成員p和num1的p是指向同一塊空間,在調用析構函數的時候會導致用一塊空間被釋放兩次,程序會崩潰。

總結

以上是生活随笔為你收集整理的今日c++练手之寻找n个连续的合数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。