欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

并非最边界的情况"OK"就真的"OK"(记洛谷P1720WA的经历)

程序员文章站 2024-03-17 21:04:04
...

题目要求

P1720题目链接

并非最边界的情况"OK"就真的"OK"(记洛谷P1720WA的经历)
并非最边界的情况"OK"就真的"OK"(记洛谷P1720WA的经历)

分析

这个题纯粹在鬼扯,数学基础OK的人一眼就看得出是斐波那契数列。

求Fn其实是程设基础水平的题,千万别写递归——O((5/3)^n),真的慢~~

这破题为啥还WA

我也不想啊,看着Fib,我心中的警惕心就起来了,想着int不一定稳,就用long把题AC了,但是我换成int测了一下48(题示边界值),结果是非负的,看起来是OK的:
并非最边界的情况"OK"就真的"OK"(记洛谷P1720WA的经历)

我就用int交了一次,错了最后一个测试用例:
并非最边界的情况"OK"就真的"OK"(记洛谷P1720WA的经历)

回测一下47:
并非最边界的情况"OK"就真的"OK"(记洛谷P1720WA的经历)

不深究原因,显然溢出,爆了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"(记洛谷P1720WA的经历)

警示

我们在提交之前一般会自己测一下题给测试用例或者极限情况,但就算极限情况“OK”(其实不OK),也起码应多测几次……

既然是long过了,试试int是为了让自己多一些敏感性,看看这种问题int能否解决,我觉得有必要诶……

相关标签: # 菜鸡逛洛谷