蓝桥杯JavaB组真题(二)

第五题:斐波那契数列最大公约数

题目描述

在这里插入图片描述

分析题目
  • 由于F2020与F520都是很大的数,需要用到BigInteger类来存储
  • 求斐波那契数列时使用滚动数组的方法,以免内存溢出
  • 求最大公约数时,由于是大数,使用普通循环方法不好实现,这里使用了递归的方法
代码实现
import java.math.BigInteger;

public class Test {
    public static void main(String[] args) {
        BigInteger F520 = BigInteger.ZERO;
        BigInteger p = BigInteger.ZERO, q = BigInteger.ONE, r = BigInteger.ONE;
        for(int i = 3; i <= 2020; i++){
            p = q;
            q = r;
            r = p.add(q);
            if(i == 520){
                F520 = r;
            }
        }
        System.out.println(GCD(F520, r));
    }

    public static BigInteger GCD(BigInteger a, BigInteger b){
        return b.compareTo(BigInteger.ZERO) == 0 ? a : GCD(b, a.mod(b));
    }
}
答案
6765
2022蓝桥杯javab组真题解析如下: 2022年蓝桥杯javab组真题从基础到进阶,难度适中,测试了参赛选手在Java编程语言方面的知识和能力。题目涵盖了数组、字符串处理、面向对象编程等多个知识点,考察了学生的编程思维和解决问题的能力。 首先,题目要求实现一个学生成绩管理系统,包括学生信息录入、成绩查询、成绩统计等功能。通过类的设计和实例化,可以实现学生对象的创建和信息存储。使用数组或集合来存储多个学生对象,便于后续的查询和统计操作。 其次,题目要求实现一个简单的买卖股票的交易系统。需要设计一个股票类,其中包括股票名称、日期、买入价、卖出价等属性,然后通过输入的交易数据进行统计,计算利润最大化的买入和卖出操作。可以使用循环和条件语句来实现逻辑判断和计算运算。 最后,题目要求实现一个小型的计算器程序。可以通过实现不同的方法来实现加、减、乘、除等基本运算。可以使用条件语句或循环语句来判断用户输入的操作,并进行相应的计算操作。 总结来说,2022蓝桥杯javab组真题考察了参赛选手的编程能力和应用基础知识的能力,要求实现多个功能,并考察了类的设计和对象的使用。通过解析这些真题,可以提高对Java编程语言的理解和应用能力,对于参加类似的编程竞赛有一定的帮助作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值