演算法學習日記 撲克牌比較 and 子網掩碼對比

2021-07-04 20:16:55 字數 2089 閱讀 1061

演算法學習日記   撲克牌比較 and 子網掩碼對比 

問題:子網掩碼格式為:255.255.255.0(11111111.11111111.11111111.00000000)

ip位址舉例為:192.168.0.254(11010000.10101000.00000000.11111110)

如果兩個ip位址與子網掩碼按位與的結果相同,那麼稱這兩個ip位址處於同一子網中

設計程式,判斷輸入的兩個ip位址是否處於同一子網中,如果是,輸出0,否則輸出2。格式錯誤輸出1。

兩個問題都沒什麼難度,但是要考慮很多情況。在寫程式過程中出現了很多問題

(1)細節不熟練,總是要除錯很久。

(2)c++的東西總是忘記

下面分別說說兩個程式中的教訓

1.撲克牌比較:想的演算法很複雜,總喜歡將所有的功能打包成為各種函式,不知道是好是壞…………

程式如下(c語言)

#include #include #include #include char weight_value[14]=;

int check_array_number(char *array) //得到的是真實字元的多少

return i;

}int compare(char *a,char *b)

for(j=0;j<14;j++)

if(i>j) return 1;

else return 0;

}int main(void)

else}}

}}

else

else

else}}

return 0;

}

2.子網掩碼對比:改用c++來寫所有的程式,主要教訓如下

(1)將字串轉換成int:定義乙個istringstream流,繫結要轉換的字串,然後將字串輸出至指定int型變數中,完成轉換

void ip_int(string code,int *code_i)

; int i=0,j=0;

for(i=0;i<4;i++)

j++;

}for(i=0;i<4;i++)

}

(2)string容器中也是以『\0』作為字串的結尾,因此cout時可以利用這一點。

(3)string.compare(string str)

string.empty

函式不要忘記!!

子網掩碼程式如下

#include #include //用istringstream要加上這個庫

#include #include using namespace std;

int check_ip(string code)

; int sybol_number=0;

int number=0;

int len=code.length();

int i=0,j=0;

for(i=0;i>number;

if(number>255) return 0;}}

return 1;

}}int check_mask(string mask)

; int sybol_number=0;

string subnet_code[4]=;

int len=mask.length();

int i=0,j=0;

for(i=0;i>code_i[i];

}}int checknetsegment(string mask,string ip1,string ip2)

,ip1_i[4]={},ip2_i[4]={};

ip_int(mask,mask_i);

ip_int(ip1,ip1_i);

ip_int(ip2,ip2_i);

if( c_1 && c_2 && c_m)

return 0;

}else

}int main()

{ string ip1;

string ip2;

string mask;

cin>>mask>>ip1>>ip2;

cout<

撲克牌邏輯演算法

using system using system.collections.generic namespace gamelogic 撲克牌牌值採用16進製制 byte pokerarray 獲取花色 public static byte getpokerhua byte ipoker 獲取牌值 滿足...

關於撲克牌的演算法

紅色標記的地方是我標註的乙個重點 實現乙個演算法 將一副54張撲克牌經過洗牌後順序發給三個人,然後將每個人的牌按降序排序。我們已經設計出了撲克牌類card 演算法類game,並且有了測試 main.cpp,但演算法類game中的洗牌函式shuffle 和發牌函式deal 沒有實現,請寫出具體的實現 ...

刷演算法 撲克牌順子

ll今天心情特別好,因為他去買了一副撲克牌,發現裡面居然有2個大王,2個小王 一副牌原本是54張 他隨機從中抽出了5張牌,想測測自己的手氣,看看能不能抽到順子,如果抽到的話,他決定去買體育彩票,嘿嘿!紅心a,黑桃3,小王,大王,方片5 oh my god 不是順子.ll不高興了,他想了想,決定大小 ...