有兩個mac位址,如」fe:ff:fe:ab:ab:ff」 和」fe:ff:fe:ab:ab:fe」, 它們之間相差1,則這兩個位址是相鄰的。如」fe:ff:fe:ab:ab:ff」和」fe:ff:fe:ab:ab:f0」, 則它們是不相鄰的。
注意:」fe:ff:fe:ab:ab:ff」和」fe:ff:fe:ab:ac:00」也是相鄰的,你的程式要能夠認識到這一點。
mac位址是48位的,把它轉換成64位的整數就可以解決這個問題。
bool ishex(char c)
int hextoint(char c)
if (c >= 'a' && c <= 'f')
if (c >= 'a' && c <= 'f')
return -1;
}bool islegalmacaddr(const
char *macstr)
else
}else }}
}if (comcnt != 5)
if (digitcnt == 0)
return ret;
}__int64 macaddrtoint64(const
char *macstr)
while ((c = *p++) != '\0')
else
if (c == ':')
else
}return ret;
}bool checkadjmacaddr(const
char *macaddr1, const
char *macaddr2)
return
abs(macaddrtoint64(macaddr1) - macaddrtoint64(macaddr2)) == 1;
}int main()
判斷兩個線段是否相交
html xmlns lang en charset utf 8 判斷兩個線段是否相交問題title rel stylesheet href css reset.css rel stylesheet href css style.css head class wrap 判斷兩個線段是否相交h2 br...
判斷兩個矩形是否重疊
兩個矩形的邊均與x軸或y軸平行,即軸對齊的矩形 將第乙個矩形記做a,第二個矩形記做b 判斷矩陣a與矩陣b是否重疊 邊沿重疊也認為是重疊 第一種方案,正向思維 按照一般的思路,先列舉出所有的矩形重疊的情況,然後,判斷是否是其中一種,如圖所示,共有四種重疊情況,我們使用紫色代表矩形a,紅色代表矩形b,並...
判斷兩個矩陣是否重疊
題目描述 給定兩個矩陣 前提 兩個矩陣的邊均與x軸和y軸平行,即軸對齊的矩形 將第乙個矩形記作a,第二個矩形記作b,判斷矩形a與矩形b是否重疊 邊沿重疊也認為是重疊 如果重疊則返回重疊面積。演算法分析 反向思考,我們不妨先解決出 不重疊 的情況,即b矩陣,可能在a的左側 右側 上側 下側。提交 in...