并非最边界的情况“OK“就真的“OK“(记洛谷P1720WA的经历,Java语言描述)
生活随笔
收集整理的這篇文章主要介紹了
并非最边界的情况“OK“就真的“OK“(记洛谷P1720WA的经历,Java语言描述)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目要求
P1720題目鏈接
分析
這個題純粹在鬼扯,數學基礎OK的人一眼就看得出是斐波那契數列。
求Fn其實是程設基礎水平的題,千萬別寫遞歸——O((5/3)^n),真的慢~~
這破題為啥還WA
我也不想啊,看著Fib,我心中的警惕心就起來了,想著int不一定穩,就用long把題AC了,但是我換成int測了一下48(題示邊界值),結果是非負的,看起來是OK的:
我就用int交了一次,錯了最后一個測試用例:
回測一下47:
不深究原因,顯然溢出,爆了int,那就只能long咯,這破題,不至于BigInteger……
AC代碼(Java語言描述)
很簡潔:
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int num = scanner.nextInt();scanner.close();long num1 = 1, num2 = 1, result = 0;for (int i = 3; i <= num; i++) {result = num1 + num2;num1 = num2;num2 = result;}System.out.println(result + ".00");} }警示
我們在提交之前一般會自己測一下題給測試用例或者極限情況,但就算極限情況“OK”(其實不OK),也起碼應多測幾次……
既然是long過了,試試int是為了讓自己多一些敏感性,看看這種問題int能否解決,我覺得有必要誒……
總結
以上是生活随笔為你收集整理的并非最边界的情况“OK“就真的“OK“(记洛谷P1720WA的经历,Java语言描述)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 离散数学之集合论【中】
- 下一篇: 任尔东西南北风(洛谷P2689题题解,J