首页 > 其他分享 >考前一周-ing

考前一周-ing

时间:2024-04-08 13:33:02浏览次数:18  
标签:10 BigInteger 数字 考前 大数 一周 126 阶乘 ing

我觉得还是好好掌握简单题,并总结一下题目的类型和知识点。因为我太菜了

借鉴别人的知识点蓝桥杯历年真题分类汇总(史上最全版本,一定不要错过)-CSDN博客

日期与时间问题,枚举(但是一般不会单着考,会结合set,map,最大公约数等) ,数学+思维+找规律,动态规划,字符串,全排列,最大公约数 ,排序(二分查找,快排,分治思想), DFS,BFS。最近几年会发现蓝桥杯题目越来越难,少了许多'暴力’,偏向于动态规划和数学思维,这种题目一般都是不简单的,不过没关系,填空题前几道还是比较偏向枚举的考察,不过要结合着set去重,二分查找,map,等技巧考,做几道真题就可以掌握八九不离十,、其次就是日期问题,还是屡见不鲜,我们可以借助excel和电脑自带计算器做.简单的题做对拿个省三是没问题的.其次就是要掌握一些回溯算法可以看我这篇博客回溯算法,实在不会做直接暴力搜索,可以得到部分分.还有就是全排列,最大公约数和最小公倍数,set去重,vector,map等STL容器.sort,max等algorithm等库里的常用函数,字符串和整数切换,大数相乘等技巧和模板要多记记,竞赛中很常见这样基本稳省二了.最后说一下,有余力的同学可以学一下DP算法,可以看一下这个视频DP分析法学会之后可以准备国赛了。

题目一 阶乘求和

【问题描述】
令 S = 1! + 2! + 3! + ... + 202320232023! ,求 S 的末尾 9 位数字。
提示:答案首位不为 0 。
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一
个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

看到这么大的数字,想到用大数类BigInteger.仔细看题,要求S的末尾9位数字,那么极有可能这后9位比较特殊。

求阶乘:

int sum = 0;
        int j = 1;
        for(int i = 1; i <= 2; i++) {
            j = j+i;// j = j * i;
            sum += j;
        }
        System.out.println(sum);

大数类:

创建对象:

BigInteger big = new BigInteger("202320232023");
BigInteger big1 = BigInteger.valueOf(2023);//括号里式int或long型,不能超出范围

        在for循环里面,我们要写i< 202320232023时,会出错,因为i时整形的,所以这里不能写202320232023,我们想到把i也转换成大数类,但是没有办法表示<,.....当我们不知道怎么办的时候,在读题,发现只要求末尾9位数字即可,猜想可能到某个数的阶乘之和之后末尾的九位数已经不再改变,所以开始尝试算阶乘,注意:用上面的求阶乘的z只能算到25的阶乘和,27的阶乘和就超过了整数的范围,所以我们要记住:40!以及40以后的阶乘后9位都是0.

蓝桥杯2023年第十四届省赛真题-阶乘求和-CSDN博客

所以,我们只需要算前39的阶乘和就可算出202320232023的阶乘和的末尾9位数字啦,然后我们用大数套用算阶乘的代码

大数中的运算:前提a和b得都是大数

加 a.add(b)

减 a.subtract(b)

乘 a.multiply(b)

除 a.divide(b)

比较大小 a.compareTo(b) a>b,返回正数,a<b,返回负数,a=b,返回0;

BigInteger.valueOf(i);可以将整数i转化成大数类型

 代码:

package lan2023;


import java.math.BigInteger;

public class A阶乘求和 {

	public static void main(String[] args) {
		
		BigInteger sum = new BigInteger("0");
		BigInteger j = new BigInteger("1");
		for(int i = 1; i <= 39; i++) {
			j = j.multiply(BigInteger.valueOf(i));
			sum = sum.add(j);
		}
		System.out.println(sum);
	}
}

运行结果: 20935051082417771847631371547939998232420940313

答案:420940313

 题目二:幸运数字

【问题描述】
哈沙德数是指在某个固定的进位制当中,可以被各位数字之和整除的正整
数。例如 126 是十进制下的一个哈沙德数,因为 (126) 10 mod (1+2+6) = 0 ; 126
也是八进制下的哈沙德数,因为 (126) 10 = (176) 8 , (126) 10 mod (1 + 7 + 6) = 0 ;
同时 126 也是 16 进制下的哈沙德数,因为 (126) 10 = (7 e ) 16 , (126) 10 mod (7 +
e ) = 0 。小蓝认为,如果一个整数在二进制、八进制、十进制、十六进制下均为
哈沙德数,那么这个数字就是幸运数字,第 1 至第 10 个幸运数字的十进制表示
为: 1 , 2 , 4 , 6 , 8 , 40 , 48 , 72 , 120 , 126 . . . 。现在他想知道第 2023 个幸运数
字是多少?你只需要告诉小蓝这个整数的十进制表示即可。
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一
个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

要找到第2023个幸运数字,我们想到可以用遍历直到找到第2023个幸运数字为止,在for循环里进行判断是时候,我们需要求当前遍历数的二进制、八进制、十进制、十六进制,此时我们可以编写一个方法来帮我们计算一下某个数的进制数各位和,注意不是求进制是几,我们需要传入两个参数当前的数,以及转换成几进制的,

标签:10,BigInteger,数字,考前,大数,一周,126,阶乘,ing
From: https://blog.csdn.net/2301_76876837/article/details/137477786

相关文章

  • springboot~mybatis统一处理公有字段
    对于实体中包含有公共字段,像create_at,create_time,update_at,update_time来说,我们没有必要在每个实体的crud操作中复制同样的代码,这样代码的味道很坏,我们应该使用mybatis的拦截器机制,将公共字段统一处理;当然mybatis-puls在实现上更加优雅,它帮我们封装了MetaObjectHandler接口,我们......
  • 基于springboot+vue+Mysql的学习平台
    开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven3.3.9系统展示平台首页用户注册课程信息作业信息资料信息个人中心管理员功能界面学生管理教师管理课程......
  • 基于Java+SpringBoot+Vue的SRM供应商系统(源码分享)
           前言:供应商招投标管理系统是一个综合性的管理平台,旨在规范供应商的招投标流程,确保采购过程的透明度和公正性,同时提高采购效率。以下是对您提到的各个环节的详细解释:一、供应商准入供应商准入是招投标管理系统的首要环节,它负责审核和管理潜在供应商的资质。具......
  • Spring Data JPA应用之动态查询JpaSpecificationExecutor
    JPA提供了基于准则查询的方式即Criterial查询——Specification接口。该接口定义了一个toPredicate方法用例构造查询条件。在SpringBoot对SpringDataJPA的支持案例的基础上对该接口实操进行探讨。1)数据访问接口必须实现JpaSpecificationExecutor......
  • MySQL分组查询以及having筛选
    DDLCREATETABLE`student`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'学号',`createDate`datetimeDEFAULTNULL,`userName`varchar(20)DEFAULTNULL,`pwd`varchar(36)DEFAULTNULL,`phone`varchar(11)DEFAULTNULL,`age`tinyint(......
  • MySQL分组查询以及having筛选
    DDLCREATETABLE`student`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'学号',`createDate`datetimeDEFAULTNULL,`userName`varchar(20)DEFAULTNULL,`pwd`varchar(36)DEFAULTNULL,`phone`varchar(11)DEFAULTNULL,`age`tinyint(......
  • My SQL分组查询以及having筛选
    DDLCREATETABLE`student`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'学号',`createDate`datetimeDEFAULTNULL,`userName`varchar(20)DEFAULTNULL,`pwd`varchar(36)DEFAULTNULL,`phone`varchar(11)DEFAULTNULL,`age`tinyint(......
  • MySql分组查询及having筛选
    DDLCREATETABLE`result`(`rid`int(11)NOTNULLAUTO_INCREMENTCOMMENT'成绩编号',`testName`varchar(255)DEFAULTNULLCOMMENT'测试名称',`score`double(4,2)DEFAULTNULLCOMMENT'成绩',`studentId`int(11)DEFAULTNULLCO......
  • 深度学习-卷积神经网络--什么是manifold embedding--66
    目录参考:流形假设(ManifoldHypothesis)在介绍流形学习(Manifoldlearning)之前,首先需要理解一个假设,就是流形假设(ManifoldHypothesis)。这个假设认为,高维数据很多都是低维流形嵌入(embedding)于高维空间当中,比如说三维空间里的各种平面或者曲面,虽然这些平面或者曲面处于三......
  • Java零基础入门-String
    一、概述        近期有个小伙伴在看我的文章,说我在讲完基本类型,只是顺带提了一嘴String,然后说他的老师在课上对这String讲了足足一节课,好家伙,我觉得啊,这勾起了我的回忆,当初我看String的源码及知识点时,也是看了很久,这怪我,疏忽大意了啊。既然被这位小伙伴吐槽,那我就为......