0101 蓝桥杯真题04

news2025/1/18 16:57:52

 

 

  

 

 

 

 

 

 

 

/*
 * 马虎的算式
 * 小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。
 * 有一次,老师出的题目是:36 x 495 = ?
 * 他却给抄成了:396 x 45 = ?
 * 但结果却很戏剧性,他的答案竟然是对的!!
 * 因为 36 * 495 = 396 * 45 = 17820
 * 类似这样的巧合情况可能还有很多,比如:27 * 594 = 297 * 54
 * 假设 a b c d e 代表1~9不同的5个数字(注意是各不相同的数字,且不含0)
 * 能满足形如: ab * cde = adb * ce 这样的算式一共有多少种呢?
 * 
 * 请你利用计算机的优势寻找所有的可能,并回答不同算式的种类数。
 * 满足乘法交换律的算式计为不同的种类,所以答案肯定是个偶数。
 * 
 * 
 */
public class _011马虎的算式 {
    public static void main(String[] args) {
        int count = 0;
        for(int a = 1;a < 10;a++) {
            for(int b = 1;b < 10;b++) {
                if(a != b) {
                    for(int c = 1;c < 10;c++) {
                        if(c != a && c!= b) {
                            for(int d = 1;d < 10;d++) {
                                if(d != a && d != b && d != c) {
                                    for(int e = 1;e < 10;e++) {
                                        if(e != a && e != b && e != c && e != d) {
                                            if((a*10+b)*(c*100+d*10+e)==(a*100+d*10+b)*(c*10+e)) {
                                                count++;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        System.out.println(count);
    }
}

import java.math.BigDecimal;
import java.math.BigInteger;
import java.math.RoundingMode;

/*
 * 黄金连分数
 * 黄金分割数0.61803… 是个无理数,这个常数十分重要,在许多工程问题中会出现。有时需要把这个数字求得很精确。
 *
 * 对于某些精密工程,常数的精度很重要。也许你听说过哈勃太空望远镜,它首次升空后就发现了一处人工加工错误,对那样一个庞然大物,
 * 其实只是镜面加工时有比头发丝还细许多倍的一处错误而已,却使它成了“近视眼”!!
 *
 * 言归正传,我们如何求得黄金分割数的尽可能精确的值呢?有许多方法。
 *
 * 比较简单的一种是用连分数:
 *                  1
 *     黄金数 = ---------------------
 *                         1
 *              1 + -----------------
 *                           1
 *                  1 + -------------
 *                             1
 *                      1 + ---------
 *                           1 + ... 
 *
 *
 * 这个连分数计算的“层数”越多,它的值越接近黄金分割数。
 *
 * 请你利用这一特性,求出黄金分割数的足够精确值,要求四舍五入到小数点后100位。
 *
 * 小数点后3位的值为:0.618
 * 小数点后4位的值为:0.6180
 * 小数点后5位的值为:0.61803
 * 小数点后7位的值为:0.6180340
 * (注意尾部的0,不能忽略)
 *
 * 你的任务是:写出精确到小数点后100位精度的黄金分割值。
 *
 * 注意:尾数的四舍五入! 尾数是0也要保留!
 *
 * 显然答案是一个小数,其小数点后有100位数字,请通过浏览器直接提交该数字。
 * 
 * 思路
 * 1/2,2/3,3/5,5/8...
 * 规律:分子是前一项的分母,分母是前一项的分子分母相加
 * 分子:1,2,3,5...
 * 分母:2,3,5,8...
 * ==>斐波那契
 * 
 * 注意:要使n足够大,让小数点后101位是不变的(稳定)
 * 
 * 在Java中提供了用于大数字运算的类,即 java.math.BigInteger 类和 java.math.BigDecimal 类。
 * 这两个类用于高精度计算,其中BigInteger 类是针对整型大数字的处理类,而 BigDecimal 类是针对大小数的处理类。
 * 
 * 相关方法
 * 1.BigDecimal(BigInteger unscaledVal, int scale)
 *   将BigInteger转换为BigDecimal,并进行舍入
 * 2.RoundingMode.HALF_UP:四舍五入
 * 3.toPlainString() :返回不带指数字段的此 BigDecimal 的字符串表示形式
 * 4.substring():返回字符串的子字符串
 */
public class _012黄金连分数 {
    public static void main(String[] args) {
        BigInteger a = BigInteger.ONE;//1
        BigInteger b = BigInteger.ONE;//1
        for(int i = 3;i < 500;i++) {//迭代
            BigInteger temp = b;
            b = a.add(b);
            a = temp;
        }
        BigDecimal divide = new BigDecimal(a,110).divide(new BigDecimal(b,110),RoundingMode.HALF_UP);
        System.out.println(divide.toPlainString().substring(0,103));//截取字符串[0,103)位,即小数点后101位,四舍五入
        //0.61803398874989484820458683436563811772030917980576286213544862270526046281890244970720720418939113748
        //答案为
        //0.6180339887498948482045868343656381177203091798057628621354486227052604628189024497072072041893911375
    }
}

/*
 * 有理数就是可以表示为两个整数的比值的数字。一般情况下,我们用近似的小数表示。但有些时候,不允许出现误差,必须用两个整数来表示一个有理数。
 * 这时,我们可以建立一个“有理数类”,下面的代码初步实现了这个目标。为了简明,它只提供了加法和乘法运算。
    class Rational
    {
    private long ra;
    private long rb;
    
    private long gcd(long a, long b){
        if(b==0) return a;
        return gcd(b,a%b);
    }
    public Rational(long a, long b){
        ra = a;
        rb = b;    
        long k = gcd(ra,rb);
        if(k>1){ //需要约分
            ra /= k;  
            rb /= k;
        }
    }
    // 加法
    public Rational add(Rational x){
        return ________________________________________;  //填空位置
    }
    // 乘法
    public Rational mul(Rational x){
        return new Rational(ra*x.ra, rb*x.rb);
    }
    public String toString(){
        if(rb==1) return "" + ra;
        return ra + "/" + rb;
    }
}

 * 使用该类的示例:
    Rational a = new Rational(1,3);
    Rational b = new Rational(1,6);
    Rational c = a.add(b);
    System.out.println(a + "+" + b + "=" + c);
 
 * 思路
 * 加法:通分
 * 分母 = 当前分母*传入分母
 * 分子 = 当前分子*传入分母
 */
public class _013有理数类 {
    //测试
    public static void main(String[] args) {
        Rational a = new Rational(1,3);
        Rational b = new Rational(1,6);
        Rational c = a.add(b);
        System.out.println(a + "+" + b + "=" + c);//1/2
    }
    static class Rational
    {
    private long ra;
    private long rb;
    
    private long gcd(long a, long b){
        if(b==0) return a;
        return gcd(b,a%b);
    }
    public Rational(long a, long b){
        ra = a;
        rb = b;    
        long k = gcd(ra,rb);
        if(k>1){ //需要约分
            ra /= k;  
            rb /= k;
        }
    }
    // 加法
    public Rational add(Rational x){
        return new Rational(ra*x.rb + x.ra*rb,rb*x.rb);
    }
    // 乘法
    public Rational mul(Rational x){
        return new Rational(ra*x.ra, rb*x.rb);
    }
    public String toString(){
        if(rb==1) return "" + ra;
        return ra + "/" + rb;
    }
}
}

import java.util.Scanner;

/*
 * 题目描述
 * 幸运数是波兰数学家乌拉姆命名的。它采用与生成素数类似的“筛法”生成 。首先从1开始写出自然数1,2,3,4,5,6,....
 * 1  就是第一个幸运数。
 * 我们从2这个数开始。把所有序号能被2整除的项删除,变为: 1  _  3  _  5  _  7  _  9  ....
 * 把它们缩紧,重新记序,为: 1  3  5  7  9  ....  。
 * 这时,3为第2个幸运数,然后把所有能被3整除的序号位置的数删去。注意,是序号位置,不是那个数本身能否被3整除!!  删除的应该是5,11,  17,  ...
 * 此时7为第3个幸运数,然后再删去序号位置能被7整除的(19,39,...)
 * 最后剩下的序列类似:
 * 1,  3,  7,  9,  13,  15,  21,  25,  31,  33,  37,  43,  49,  51,  63,  67,  69,  73,  75,  79,  ...
 * 
 * 输入
 * 输入两个正整数m  n,  用空格分开  (m  <   n  <   1000*1000)
 * 输出
 * 程序输出  位于m和n之间的幸运数的个数(不包含m和n)。

    样例输入
    30 69
    
    样例输出
    8

 */
public class _014幸运数 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int m = sc.nextInt();
        int n = sc.nextInt();
        int[] a = new int[n];
        //筛选:把能被2整除的项删除
        for(int i = 0;i < n;i++) {
            a[i] = 2 * i + 1;
        }
        
        int l = 1;//幸运数的下标,即a[l]为幸运数
        while(true) {
            int p = l+1;//数字向前挪动的位置
            for(int i = l+1;i < n;i++) {
                if((i+1) % a[l] == 0) {
                    //跳过
                }else {
                    a[p] = a[i];
                    p++;
                }
            }
            
//            for(int i = 0;i < n;i++) {
//                System.out.print(a[i] + " ");
//            }
//            System.out.println();
            l++;
            
            if(a[l] >= n) {
                break;
            }
        }
        
        int count = 0;//计数
        for(int i = 0;i < n;i++) {
            if(a[i] >= n) {
                break;
            }
            if(a[i] > m) {
                count++;
            }
        }
        System.out.println(count);
    }
    
}

import java.util.Scanner;

/*
 * 问题描述
 * 小明这些天一直在思考这样一个奇怪而有趣的问题:
 * 在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是:
 * 如果区间[L, R] 里的所有元素(即此排列的第L个到第R个元素)递增排序后能得到一个长度为R-L+1的“连续”数列,则称这个区间连号区间。
 * 当N很小的时候,小明可以很快地算出答案,但是当N变大的时候,问题就不是那么简单了,现在小明需要你的帮助。
 * 
 * 输入格式
 * 第一行是一个正整数N (1 <= N <= 50000), 表示全排列的规模。
 * 第二行是N个不同的数字Pi(1 <= Pi <= N), 表示这N个数字的某一全排列。
 * 
 * 输出格式
 * 输出一个整数,表示不同连号区间的数目。

    样例输入1
    4
    3 2 4 1
    样例输出1
    7
    样例输入2
    5
    3 4 2 5 1
    样例输出2
    9
    
 * 思路
 * 1.区间[L, R],递增排序后能得到一个长度为R-L+1
 */
public class _015连号区间数 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] arr = new int[n+1];
        
        for(int i = 1;i <=n;i++) {
            arr[i] = sc.nextInt();
        }
        
        int count = 0;
        for(int i = 1;i <= n;i++) {
            int max = arr[i];
            int min = arr[i];
            for(int j = i;j <= n;j++) {
                if(arr[j] > max) {
                    max = arr[j];
                }
                if(arr[j] < min) {
                    min = arr[j];
                }
                if(i==j) {
                    count++;
                }else {
                    if(max - min == j-i) {
                        count++;
                    }
                }
            }
        }
        System.out.println(count);
    }
}

 

 

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

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

相关文章

同花顺_代码解析_技术指标_Z_3

本文通过对同花顺中现成代码进行解析&#xff0c;用以了解同花顺相关策略设计的思想 目录 ZNZ_DPCYC1 ZNZ_DPCYR ZNZ_HLD ZNZ_HUO ZNZ_MYL1 ZNZ_MYP1 ZNZ_PAS ZNZ_PAS1 ZNZ_RPY1 ZNZ_RPY2 ZNZ_SDR ZNZ_TAO ZNZ_YHBOL1 ZNZ_YHCBB ZX ZNZ_DPCYC1 大盘成本均线 行…

python 给图片添加噪声

import numpy as np import cv2 import matplotlib.pyplot as plt import skimage from skimage import io import randomdef addGaussNoise(origin,var0.0005):#添加高斯噪声函数var random.uniform(0.0001, 0.04)noisy skimage.util.random_noise(origin, modegaussian, va…

idea iu 2021 Mac版本的使用,如何创建java web项目,包括tomcat和web包

Java web系列文章目录 第一章 前端学习入门之idea iu 2021版本的使用 目录Java web系列文章目录前言一、Java web是什么&#xff1f;二、配置步骤1.下载Tomcat服务器2.idea iu 2021版本界面总结前言 随着前端的学习路径&#xff0c;java web项目不可避免要学习使用&#xff0…

YUV与RGB 以及之间的转换

目录 一、RGB 二、YUV 三、YUV类型和存储方式 1、类型 2、存储方式 四、分析YUV 4:2:0 1、YU12(I420&#xff0c;YUV420P) 2、YV12 3、NV12(YUV420SP) 4、NV21(YUV420SP) 5、占用空间大小比较 五、RGB与YUV之间的转换 1、转换标准 2、Color Range 3、计算公式 在…

【ArcGIS】属性表导出及乱码问题

这玩意其实说难不难&#xff0c;但是乱码有时候还是烦人 直接复制到EXCEL 部分表细节被我删掉了 直接点击全选&#xff0c;然后复制&#xff0c;再到EXCEL里粘贴。我有时候就是这么干的。而且量大概是二十万行左右。 Table to Table 如果你的属性文件大于65533行&#xff…

十一、组合API(1)

本章概要 为什么要引入组合APIsetup() 函数 组合&#xff08;Composition&#xff09;API 是在 Vue 3.0 中引入的&#xff0c;它是一组附加的、基于函数的 API &#xff0c;允许灵活地组合组件逻辑。 组合 API 并没有引入新的概念&#xff0c;更多地是将 Vue 的核心功能&…

项目相互依赖调用解决方法两种方法

Bmodel依赖于Amodel&#xff0c;但是Amodel又需要BModel的信息。原来是在Amodel创建一块内存&#xff0c;在Bmodel中将内存地址赋给这块内存&#xff0c;然后在Amodel去做其他操作。 方法一&#xff1a;采用静态变量static链接&#xff1a;C开发中一个解决方案里&#xff0c;两…

LeetCode 0808. 分汤:好题【感叹号】

【LetMeFly】808.分汤&#xff1a;好题&#xff01; 力扣题目链接&#xff1a;https://leetcode.cn/problems/soup-servings/ 有 A 和 B 两种类型 的汤。一开始每种类型的汤有 n 毫升。有四种分配操作&#xff1a; 提供 100ml 的 汤A 和 0ml 的 汤B 。提供 75ml 的 汤A 和 2…

Google Earth Engine(GEE)—— 各矿区时序NDVI变化图(包含具体的运行函数)

函数: ee.Filter.eq(name, value) Filter to metadata equal to the given value. Returns the constructed filter. Arguments: name (String): The property name to filter on. value (Object): The value to compare against. Returns: Filter ui.Chart.image.s…

7、Jedis测试

文章目录7、Jedis测试7.1. Jedis所需要的jar包7.2. 连接Redis注意事项7.3. Jedis常用操作7.3.1. 创建动态的工程7.3.2. 创建测试程序7.4. 测试相关数据类型7.4.1. Jedis-API&#xff1a;Key7.4.2. Jedis-API&#xff1a;String7.4.3. Jedis-API&#xff1a;List7.4.4. Jedis-AP…

葡萄糖-聚乙二醇-6-羧甲基荧光素 Glucose-PEG-6-FAM

葡萄糖-聚乙二醇-6-羧甲基荧光素 Glucose-PEG-6-FAM 中文名称&#xff1a;葡萄糖-6-羧甲基荧光素 英文名称&#xff1a;Glucose-6-FAM 别称&#xff1a;6-羧甲基荧光素标记葡萄糖&#xff0c;6-羧甲基荧光素-葡萄糖 PEG接枝修饰葡萄糖 Glucose-PEG-6-FAM 葡萄糖-聚乙二醇…

需求收集方法工具,以及进行需求分析的6大要素

通过本文你将了解&#xff1a;1、需求管理流程包括哪四个步骤&#xff1b;2、如何进行需求收集&#xff1b;3、如何进行需求分析&#xff1f;4、如何进行需求分发&#xff1b;5、如何进行需求验证&#xff1b;6、有哪些辅助软件需求管理的工具系统&#xff1f;一、需求管理包括…

MyBatis核心配置文件

1.environments 注 : environments下面可以配置多个环境 , 需要使用哪个环境default里面的参数就对应哪个Id. 2.properties 配置连接 方法一 :(直接配置参数) 方法二 :(使用properties配置文件) (1)创建一个 properties 文件 , 在里面配置连接 (2)在核心配置文件中配置使用p…

41.朴素贝叶斯Naive Bayes公式推导与理解+求解公园凉鞋问题(借助文氏图)

朴素贝叶斯是基于概率论统计学的分类算法。 贝叶斯理论是指根据一个已发生事件的概率&#xff0c;计算另一个事件的发生概率。 目录 1.相关概念 1.1先验概率 应用举例 1.2条件概率 应用举例 1.3全概率公式 应用举例 1.4后验概率 应用举例 2.课堂笔记 ​ 3.文…

ubuntu16.04+cuda10.0+cudnn7.6+tensorflow_gpu-1.11.0环境安装

为了搭深度学习环境,又装了一遍各种库,在此记录安装版本和流程. ubuntu16.04cuda10.0cudnn7.6tensorflow_gpu-1.11.0环境安装1 安装NVIDIA显卡2 安装CUDA10.03 安装CUDNN4 安装tensorflow_gpu-1.11.01 安装NVIDIA显卡 查看自己的显卡型号: lspci |grep -i nvidianvidia官网:h…

linux安装Zookeeper3.5.7详解

官网下载链接&#xff1a;Apache ZooKeeper 如下图可以下载历史版本 然后找到3.5.7版本&#xff0c;直接下载即可然后将Zookeeper拷贝到一个文件夹下&#xff0c;这里我选择的是/opt/software文件夹 然后将其解压到指定目录下 tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C …

让你全方位了解tftp协议,学tftp协议不再难

TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议&#xff0c;端口号为69&#xff0c;是一种高效的文件传输方式。 其目标是在UDP之上建立一个类似于FTP的但仅支持文件上传和下载功能的传输协议&a…

【Jmeter基础篇】06:HTTP信息头管理器的使用 | 梯度加压性能测试

一、什么是信息头&#xff1f; 其实就是请求头&#xff0c;它会随着我们的HTTP请求一起发送到服务器。 二、使用场景 需要传输cookie&#xff0c;token或其他某些信息&#xff0c;或是需要伪造请求头的时候。 三、实际案例 比如我在使用Apache Jmeter发送请求的时候&#…

【Hack The Box】linux练习-- Haircut

HTB 学习笔记 【Hack The Box】linux练习-- Haircut &#x1f525;系列专栏&#xff1a;Hack The Box &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; &#x1f4c6;首发时间&#xff1a;&#x1f334;2022年9月7日&#x1f334; &#x1f36…

Fiddler收费没得用?这款抓包神器 Github star 过万,一个字:香

关于抓包&#xff0c;那是测试人员必备技能之一了&#xff0c;通常我们会通过一些抓包工具来辅助我们测试、定位bug。 我最早接触并使用的就是 fiddler &#xff0c;不过目前最新版本已经要开始付费了&#xff0c;以前很老的那版我也不爱用了&#xff0c;这可咋整&#xff1f;…