這題一開(kāi)始沒(méi)想出來(lái),一直只想著直接化成字符串然后在比較,可是那樣不僅實(shí)現(xiàn)比較困難,而且也不怎么實(shí)現(xiàn),因?yàn)槟菢右蟮目臻g太大了,是在承受不了,后來(lái)問(wèn)了下別人,一經(jīng)點(diǎn)撥,發(fā)現(xiàn)OK了。哎,當(dāng)時(shí)怎么就鉆進(jìn)死胡同了呢……
因?yàn)榻o你的數(shù)字可以變成一系列字符串,如果在字典中存在某個(gè)的話,就輸出。那么就直接從文件輸入一個(gè)字符串,轉(zhuǎn)化成數(shù)據(jù),然后比較是否一樣(這里必須用long long,因?yàn)榉?wù)器是用g++編譯的,long 太小了,__int64 會(huì)編譯出錯(cuò)(__int64 在VC中用))當(dāng)然這里的比較可以轉(zhuǎn)化成字符串比較,這個(gè)就不說(shuō)了。這樣掃描一遍字典就OK了,為什么可以呢?因?yàn)?假設(shè)答案會(huì)輸出字符串str,那個(gè)str一定存在在dict.txt中,而且str轉(zhuǎn)化成數(shù)字后肯定和輸入的數(shù)據(jù)是一樣的,因?yàn)橥ㄟ^(guò)輸入的數(shù)據(jù)能變成的字符串是連續(xù)的,而且不遺漏的。