[問題] 程式碼執行正常但運算怪怪的

看板C_and_CPP (C/C++)作者 (阿翔)時間15年前 (2011/03/09 19:27), 編輯推噓2(207)
留言9則, 8人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) C++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題:http://zerojudge.tw/ShowProblem?problemid=d283 程式寫的跟題目敘述一樣,但解題時就說與正確輸出不相符(line:1) 您的答案為: 8311836295577549096 正確答案為: 675499831626406527003361289526455781668427025940362792483546113290968530710801149857452524127799562952735126724453617277934258719846742769981676619730501916677426065211741488875099049847834865854001135192371808363185868137761960114905041652650815004468003341189260405749384360910735233153498028093094552478641833741103357112327343606988932449963499320225085917071224712800518666718566148077140656745244043265497674560961925364466751802163750719217132753244636298214946035250995545120238424648870473759099081666 637846602053268725449426364324717316216701751266625696293779248737074065064234563722523143300425310286494794534603527190381481978167535639629512737332745798548374357566366394343950032342357826778543584948842887086034981584217954680813607306973517760497885873087878197404588016844318791741813734900277425019790314095019464769894188995081469981753518153403867759772824712804548121960567661057806613070202147454937083405740697212657211960288810065911520029900080390967143027633065553103812884211116725382739645779 515643117291105817627351117140117687319323757775940083665369795613565698884701959689734341537022279331499736556026992327612085037186829351650813059320066343245543520104962332145364684953005689688082639492005911208883891429770196364282520421479860262182492887169832771630357007513395880751754431815779396235032552592585539634689036483718962556465251239265900096361327579183403373137120566868071502439807479555751807128636394738917273523820800338130107058408307753060922545056209504224055720606125866184030010405 018857564035996711508989206491296952208534753444354487708275975655532658991739667775531699044911024554927043610486470329236423541867600467592766511239383210333264964277810646924268414453486131053422410855202689253555065494385928655745175683966011029858338749344306826134503514222482909762761247085774697945551044258080160108779536157104309114116052881051705415716418541178904201424349749351123567090222337472678423988384772829555628864552299883816938549309659016600012221705833375654129366741987662240217323906 71298857757801403845088566833218168564823842177919070172101277079709915478157402237490604761490228853210447477279031082045980375354531292892000800593224567956087659550030120 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) #include <iostream> using namespace std; int main() { int n, k; unsigned long long f[20001]; f[0]=0; f[1]=1; for(unsigned long long i=2;i<20000;i++) f[i]=f[i-1]+f[i-2]; while (cin >> n ){ cout << f[n] <<endl; } return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.80.48.60

03/09 19:31, , 1F
正確答案不就說明了unsigned long long根本不夠表示嗎...
03/09 19:31, 1F

03/09 19:32, , 2F
請google "big number" 會有你想要的東西
03/09 19:32, 2F

03/09 19:33, , 3F
那請問要用甚麼?老師只交到unsigned long long
03/09 19:33, 3F

03/09 19:35, , 4F
先GOOGLE 2F說的吧
03/09 19:35, 4F

03/09 19:36, , 5F
先學查資料,其他都不需要學
03/09 19:36, 5F

03/09 19:39, , 6F
你可能需要super unsigned long long(大誤)
03/09 19:39, 6F

03/09 19:41, , 7F
你需要128bits CPU + OS (無誤
03/09 19:41, 7F

03/09 19:57, , 8F
你有沒有看hint... 用陣列作大數運算,並採用10000進制...
03/09 19:57, 8F

03/10 01:03, , 9F
推五樓 p 大
03/10 01:03, 9F
文章代碼(AID): #1DTsGi-p (C_and_CPP)
文章代碼(AID): #1DTsGi-p (C_and_CPP)