第十四届蓝桥杯ABD题

A、阶乘求和:

【问题描述】

令 S = 1! + 2! + 3! + ... + 202320232023! ,求 S 的末尾 9 位数字。

提示:答案首位不为 0 。

【答案提交】

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一

个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

【代码】

import java.util.*;public class Main {public static long INF = 10000000000L;public static void main(String[] args) {long sum = 0;for(int i = 1; i <= 40; i ++)  {sum = sum + fact(i);}System.out.println(sum % 1000000000);}public static long fact(int n) {long sum1 = 1;for(long i = 1; i <= n; i ++) {sum1 = sum1 * i;if(sum1 >= INF) sum1 = sum1 % INF;}return sum1;}
}
import java.math.BigInteger;public class Main {public static void main(String[] args) {BigInteger sum = BigInteger.valueOf(0);//初始化0 for(int i = 1; i <= 40; i ++) { BigInteger sum1 = BigInteger.valueOf(1);for(int j = 1; j <= i; j ++) {sum1 = sum1.multiply(BigInteger.valueOf(j));//乘法}sum = sum.add(sum1);}System.out.println(sum);//最后复制最后九位数即是答案。} 
}

【核心】

mod 10^9 就行,他要看后面九个数,咱就只考虑后面九个数即可 ,即 / 10^9考虑前九位,% 10^9保留后9位,最后复制最后九位数即是答案。BigInteger是Java中用于表示任意大小整数的类,其取值范围在负无穷到正无穷之间。

10的9次方乘以任何数末九位肯定是0,所以只需找到某个较小的n,且n!包含10的9次方这个因子,发现n等于60左右。在n后面的阶乘数,对末9位数学没影响,所以循环到60就行,不需要到2023..

B、幸运数字:

【题目】

哈沙德数是指在某个固定的进位制当中,可以被各位数字之和整除的正整 数。例如 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 个幸运数 字是多少?你只需要告诉小蓝这个整数的十进制表示即可。

【题解】

10-》2,10-》8,10-》16

public class Main {public static void main(String[] args) {int number=8;int y=2;String s= Switch (number,y);System.out.println(s);}public  static String Switch(int n,int binary){StringBuilder str=new StringBuilder("");while(n>0){str.append(n%binary);n=n/binary;}System.out.println(str.reverse().toString());return str.reverse().toString();}
}
public class Main {public static void main(String[] args) {int cnt = 0;int i = 1;while(true) {if(i % get_n(i, 2) == 0 && i % get_n(i, 8) == 0 && i % get_n(i, 10) == 0 && i % get_n(i, 16) == 0) cnt ++;if(cnt == 2023)break;i ++;}System.out.println(i);}public static int get_n(int n, int binary) {int sum = 0;while(n > 0) {sum = sum + n % binary;n = n / binary;}return sum;}
}

【十进制转二进制,八进制,十六进制】

Integer.toBinaryString(N),Integer.toOctalString(N),Integer.toHexString(N)

【十进制转N进制】

// i 是整数// radix 整数,指定十进制(i)转成 N(redix)进制

public static String toString(int i, int radix)

【N进制转十进制】

Integer.valueOf( str, N ) 方法把N进制的字符str转换成十进制

import java.awt.*;
public class t2 {public static void main(String[] args) {int ans=0;int i=0;while (true){i++;if(isCheck(i)){ans++;System.out.println(i+"为第"+ans+"个");}if(ans==2023){break;}}System.out.println("答案是:"+i);}static boolean isCheck(int n){String temp1=Integer.toString(n,2);String temp2=Integer.toString(n,8);String temp3=n+"";String temp4=Integer.toString(n,16);int temp_1=0;int temp_2=0;int temp_3=0;int temp_4=0;for (int i = 0; i < temp1.length(); i++) {temp_1+=Integer.parseInt(temp1.substring(i,i+1));}if(n%temp_1!=0){return false;}for (int i = 0; i < temp2.length() ;i++) {temp_2+=Integer.parseInt(temp2.substring(i,i+1));}if(n%temp_2!=0){return false;}for (int i = 0; i < temp3.length(); i++) {temp_3+=Integer.parseInt(temp3.substring(i,i+1));}if(n%temp_3!=0){return false;}for (int i = 0; i < temp4.length(); i++) {if((temp4.substring(i,i+1)).toCharArray()[0]>='a'){temp_4 += (temp4.substring(i,i+1)).toCharArray()[0]-'a'+10;}else {temp_4 += Integer.parseInt(temp4.substring(i, i + 1));}}if(n%temp_4!=0){return false;}return true;}
}

第一个方法避免了结果为e的情况,用了JAVA的api

D、矩形总面积:

平面上有个两个矩形 R1 和 R2,它们各边都与坐标轴平行。设 (x1, y1) 和(x2, y2) 依次是 R1

的左下角和右上角坐标,(x3, y3) 和 (x4, y4) 依次是 R2 的左下角和右上角坐标,请你计算 R1 和 R2 的总面积是多少?

注意:如果 R1 和 R2 有重叠区域,重叠区域的面积只计算一次。 输入格式 输入只有一行,包含 8

个整数,依次是:x1,y1,x2,y2,x3,y3,x4 和 y4

public class Test {public static void main(String[] args) {Scanner sc=new Scanner(System.in);String str=sc.nextLine();String[] sp=str.split(",");int x1=Integer.parseInt(sp[0]);int y1=Integer.parseInt(sp[1]);int x2=Integer.parseInt(sp[2]);int y2=Integer.parseInt(sp[3]);int x3=Integer.parseInt(sp[4]);int y3=Integer.parseInt(sp[5]);int x4=Integer.parseInt(sp[6]);int y4=Integer.parseInt(sp[7]);int max_x=Math.max(Math.max(x1,x2),Math.max(x3,x4));int max_y=Math.max(Math.max(y1,y2),Math.max(y3,y4));int max=Math.max(max_x,max_y);int[][] ints=new int[max+1][max+1];for(int y=y1;y<=y2-1;y++){for(int x=x1;x<=x2-1;x++){ints[y][x]=ints[y][x]+1;}}for(int y=y3;y<=y4-1;y++){for(int x=x3;x<=x4-1;x++){ints[y][x]=ints[y][x]+1;}}int res=0;for(int i=0;i<=max;i++){for(int z=0;z<=max;z++){if(ints[i][z]>=1){res++;}}}System.out.println(res);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/626.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaSE 有这一篇就够(呕心狂敲41k字,只为博君一点赞!)

目录 一. 基础语法 1. 数据类型 2. 基本数据类型转换 3. 运算符 3. 循环语句 5. 定义方法 6. 数组 二. 面向对象 1. 类和对象 2. 构造方法 3. 方法的重载 4. this关键字 5. static关键字 6. 代码块 7. 访问权限修饰符 8. 面向对象的三大特征 封装 继承…

你会写SAP技术规格说明书(Specification)吗

有些小伙伴可能还在发愁技术规则说明书应该写什么&#xff0c;做了张思维导图&#xff0c;包含了所有RICEFW。 R - Report - 报表 I - Interface - 接口 C - Conversion - 数据转换 E - Enhancement - 增强 F - Form - 表单 W - Workflow - 工作流

代码随想录算法训练营第四十五天|57.爬楼梯、322.零钱兑换、279.完全平方数

文档链接&#xff1a;https://programmercarl.com/ LeetCode57.爬楼梯 题目链接&#xff1a;https://kamacoder.com/problempage.php?pid1067 思路&#xff1a;每个物品能用多次——完全背包。求排列&#xff0c;遍历顺序要先背包后物品。 动规&#xff1a; #include<…

使用Python实现交叉验证与模型评估

交叉验证是一种评估机器学习模型性能的常用方法&#xff0c;它可以更准确地估计模型在未知数据上的性能。在本文中&#xff0c;我们将介绍交叉验证的原理和常见的几种交叉验证方法&#xff0c;并使用Python来实现这些方法&#xff0c;并展示如何使用交叉验证来评估模型的性能。…

华为OD机试:30 找出通过车辆最多颜色

package a_od_test;import java.util.Arrays; import java.util.Scanner;/* 找出通过车辆最多颜色 知识点滑奩 时间限制&#xff1a;1S空间限制&#xff1a;256MB限定语言&#xff1a;不限 题目描述&#xff1a; 在一个狭小的路口&#xff0c;每秒只能通过一辆车&#xff0c;假…

蓝桥杯刷题-包子凑数

1226. 包子凑数 - AcWing题库 #include <bits/stdc.h>using namespace std;const int N 110; int n , d 0; int a[N]; bool dp[N][10005];int gcd(int a,int b) {return b ? gcd(b , a % b) : a; }int main() {cin >> n;for(int i 1 ;i < n;i ){cin >&g…

【机器学习】数据变换---小波变换特征提取及应用案列介绍

引言 在机器学习领域&#xff0c;数据变换是一种常见且重要的预处理步骤。通过对原始数据进行变换&#xff0c;我们可以提取出更有意义的特征&#xff0c;提高模型的性能。在众多数据变换方法中&#xff0c;小波变换是一种非常有效的方法&#xff0c;尤其适用于处理非平稳信号和…

OpenHarmony网络协议通信c-ares [交叉编译]异步解析器库

简介 c-ares是异步解析器库&#xff0c;适用于需要无阻塞地执行 DNS 查询或需要并行执行多个 DNS 查询的应用程序。 下载安装 直接在OpenHarmony-SIG仓中搜索c-ares并下载。 使用说明 以OpenHarmony 3.1 Beta的rk3568版本为例 将下载的c-ares库代码存在以下路径&#xff1a;…

AI大模型日报#0416:李飞飞《2024年人工智能指数报告》、Sora加入Adobe、李彦宏聊百度大模型之路

​导读&#xff1a; 欢迎阅读《AI大模型日报》&#xff0c;内容基于Python爬虫和LLM自动生成。目前采用“文心一言”生成了每条资讯的摘要。标题: 刚刚&#xff0c;李飞飞团队发布《2024年人工智能指数报告》&#xff1a;10大趋势&#xff0c;揭示AI大模型的“喜”与“忧” 摘…

代码随想录打卡—day27—【回溯】— 回溯基础练习 4.15+4.16

1 39. 组合总和 39. 组合总和 我的AC代码&#xff1a; class Solution { public:vector<vector<int>> ans;vector<int> path;void dfs(int sum,vector<int>& candidates,int target,int start_idx){if(sum > target)return;if(sum target){a…

将 Notepad++ 添加到右键菜单

目录 方式一&#xff1a;添加注册表&#xff08;手动&#xff09; 方式二&#xff1a;添加注册表&#xff08;一键添加&#xff09; 有时安装了notepad后&#xff0c;在txt文件上右键&#xff0c;在弹出的菜单栏中没有【通过 Notepad 打开】&#xff0c;如下&#xff1a; 这…

【面经】2024春招-云计算后台研发工程师1(3个问题,移动TW等)

【面经】2024春招-云计算后台研发工程师1&#xff08;3个问题&#xff0c;移动&TW等&#xff09; 文章目录 岗位与面经基础1&#xff1a;数据库 & 网络&#xff08;3个问题&#xff09;基础2&#xff1a;系统 & 语法模板3&#xff1a;算法 & 项目&#xff08;移…

[StartingPoint][Tier2]Base

Task 1 Which two TCP ports are open on the remote host? (远程服务器开放了哪两个TCP端口?) $ nmap -sC -sV 10.129.234.232 22,80 Task 2 What is the relative path on the webserver for the login page? (相关的登录页面路径是什么?) /login/login.php Task 3 …

DP动态规划用在了回文串上

题源力扣最长的回文子串 思路 因为回文串有一个特性&#xff0c;就是左右对称&#xff0c;所以判断一个区间是不是回文串只需要知道两个东西&#xff1a; 他的两个端点相不相等去掉两个端点以后还是不是回文串 用数学公式表达就是 d p ( i , j ) { d p [ i 1 ] [ j − 1 …

欢乐钓鱼大师加速、暴击内置脚本,直接安装

无需手机root,安装软件即可使用&#xff0c;仅限安卓。 网盘自动获取 链接&#xff1a;https://pan.baidu.com/s/1lpzKPim76qettahxvxtjaQ?pwd0b8x 提取码&#xff1a;0b8x

element-ui按需引入配置babel-preset-es2015 有问题?

element-ui官网的步骤进行按需引入 报错 Error: Cannot find module ‘babel-preset-es2015 安装 npm install babel-plugin-component -D 配置babel.config.js 或者 .babelrc文件 官网原配置 会报错 {"presets": [["es2015", { "modules": …

html5-qrcode实现扫码功能——2024-04-19

项目需求&#xff1a;H5项目需要实现扫描二维码或条形码功能。 html5-qrcode使用 1.安装 npm install html5-qrcode --save-dev 2.引入 import { Html5Qrcode } from html5-qrcode; 3.定义所需变量 data: function() {return {html5QrCode: null,isShow: false,scanReason…

指数平滑算法介绍及代码实现

一、一阶指数平滑 一阶指数平滑&#xff0c;也称为一次指数平滑或简单指数平滑&#xff08;Simple Exponential Smoothing, SES&#xff09;&#xff0c;是时间序列预测中的一种方法。这种方法适用于没有明显趋势和季节性成分的时间序列数据。一阶指数平滑的基本思想是最近的观…

【LeetCode热题100】【矩阵】矩阵置零

题目链接&#xff1a;73. 矩阵置零 - 力扣&#xff08;LeetCode&#xff09; 用两个数组标记要变成0的行和列索引 class Solution { public:void setZeroes(vector<vector<int> > &matrix) {vector<bool> row(matrix.size(), false), column(matrix[0]…

Python零基础从小白打怪升级中~~~~~~~生成器和迭代器

第十七节&#xff1a;生成器和迭代器 一、迭代器 本质&#xff1a; 一个实现了__iter__方法和__next__方法的对象 注意 Iterator对象和 Iterable对象&#xff0c;一个是迭代器&#xff0c;一个是可迭代对象 1、list、dict、str、tuple、set是可迭代对象但不是迭代器&#x…