社区讨论
警示后人注意边界问题
B3752 [信息与未来 2019] 新斐波那契数列参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @m1uhmhi4
- 此快照首次捕获于
- 2024/10/04 16:53 去年
- 此快照最后确认于
- 2025/11/04 18:05 4 个月前
如果你 WA 在第一个测试点,而后面的测试点却通过了,请检查你的代码当中有没有判断当前的 x 是否大于等于斐波纳契数列当前被比较的项。
错误示范:
HASKELLfindPairsFor :: Int -> IO ()
findPairsFor x = testPairsAtIndex x 3
where
testPairsAtIndex :: Int -> Int -> IO ()
testPairsAtIndex _ 88 = return ()
testPairsAtIndex x i
| mod (x - fibs ! (i - 1)) (fibs ! (i - 2)) == 0 = putStrLn(show (i - 1) ++ " " ++ show (1 + div (x - fibs ! (i - 1)) (fibs ! (i - 2)))) >> testPairsAtIndex x (i + 1)
| otherwise = testPairsAtIndex x (i + 1)
正确示范:
HASKELLfindPairsFor :: Int -> IO ()
findPairsFor x = testPairsAtIndex x 3
where
testPairsAtIndex :: Int -> Int -> IO ()
testPairsAtIndex _ 88 = return ()
testPairsAtIndex x i
| x < fibs ! (i - 1) = return ()
| mod (x - fibs ! (i - 1)) (fibs ! (i - 2)) == 0 = putStrLn(show (i - 1) ++ " " ++ show (1 + div (x - fibs ! (i - 1)) (fibs ! (i - 2)))) >> testPairsAtIndex x (i + 1)
| otherwise = testPairsAtIndex x (i + 1)
回复
共 0 条回复,欢迎继续交流。
正在加载回复...