蓝桥杯 题库 简单 每日十题 day13

news2024/11/16 18:00:16

在这里插入图片描述

01 乘积尾零

题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将
所填结果输出即可。如下的10行数据,每行有10个整数,请你求出它们的乘积的末尾有多少个零?

5650 4542 3554 473 946 4114 3871 9073 90 4329 
2758 7949 6113 5659 5245 7432 3051 4434 6704 3594 
9937 1173 6866 3397 4759 7557 3070 2287 1453 9899 
1486 5722 3135 1170 4014 5510 5120 729 2880 9019 
2049 698 4582 4346 4427 646 9742 7340 1230 7683 
5693 7015 6887 7381 4172 4341 2909 2027 7355 5649 
6701 6645 1671 5978 2704 9926 295 3125 3878 6785 
2066 4247 4800 1578 6652 4616 1113 6205 3264 2915 
3966 5291 2904 1285 2193 1428 2265 8730 9436 7074 
689 5510 8243 6114 337 4096 8199 7313 3685 211 
#include <stdio.h>
//1.方法是把每个数都拆成2的m次方乘以5的n次方再乘以一个常数的形式.
//2.因为10=2*5,所有拆分的数有a个2和b个5(假设a>b),那么会有b个(2*5=10).
//3.即尾数有b个0(假设a>b).
int main()
{
    int i=0,k,a=0,b=0;
    int q[100]={5650,4542, 3554, 473, 946, 4114 ,3871, 9073, 90, 4329,
                   2758, 7949, 6113, 5659, 5245, 7432, 3051, 4434, 6704, 3594,
                   9937, 1173, 6866, 3397, 4759, 7557 ,3070, 2287, 1453, 9899,
                   1486 ,5722, 3135, 1170, 4014, 5510, 5120, 729, 2880, 9019,
                   2049, 698, 4582, 4346, 4427, 646, 9742, 7340, 1230, 7683,
                   5693, 7015, 6887, 7381, 4172, 4341, 2909, 2027, 7355, 5649,
                   6701 ,6645, 1671, 5978, 2704, 9926, 295, 3125, 3878, 6785,
                   2066 ,4247, 4800, 1578, 6652, 4616, 1113, 6205, 3264, 2915,
                   3966 ,5291 ,2904 ,1285, 2193, 1428 ,2265 ,8730 ,9436, 7074,
                   689,5510 ,8243, 6114, 337, 4096, 8199 ,7313 ,3685, 211 };
    for(i=0;i<100;i++)
    {
        k=q[i];
        while(k%2==0)
        {
            a++;
            k/=2;
        }
        while(k%5==0)
        {
            b++;
            k/=5;
        }
    }
    if(a>b)
      printf("%d",b);
    else
      printf("%d",a);
    return 0;
}

02 等差数列

在这里插入图片描述
输出描述
输出一个整数表示答案。

输入输出样例
示例
输入

5
2 6 4 10 20

输出

10

样例说明:包含2、6、4、10、20的最短的等差数列是2、4、
6、 8、10、12、14、16、18、20。

#include <iostream>
#include <algorithm> 
using namespace std;
long long a[100001];
int y(int a,int b)//求最大公约数
{
  if(b==0)return a;
    else
  return y(b,a%b);
}
int main()
{
    int n,i;
    cin>>n;
    for(int i=0;i<n;i++)
        cin>>a[i];
    sort(a,a+n);//排序
    int d=a[1]-a[0];
    for(int i=2;i<n;i++)
    {
        d=y(d,a[i]-a[i-1]);
    }
    if(a[n-1]==a[0])cout<<n<<endl;//考虑特殊情况
    else
    cout<<((a[n-1]-a[0])/d)+1<<endl;//等差数列公式
    return 0;
}

03 移动0

题目描述

输入一个n和n个整数,编写程序将所有0移动到数组的末尾,同时保持非0元素相对顺序不变。注意,必须在不复制数组的情况下原地对数组操作。

输入格式

输入一行,包含n和n个整数

输出格式

输出只有一行,包括n个整数

输入输出样例

样例 1

输入样例1

5 0 1 0 3 12

输出样例1

1 3 12 0 0

输入样例2

1 0

输出样例2

0
#include<iostream>
using namespace std;
int main(){
int n,a[10000],t;
cin>>n;
for(int i=0;i<=n-1;i++){
cin>>a[i];
}
for(int i=0;i<=n-1;i++){ 
for(int j=i;j<=n-1-i;j++){
if(a[j]==0){
t=a[j]; 
a[j]=a[j+1];
a[j+1]=t;
}
}
}
for(int i=0;i<=n-1;i++){ 
printf("%d ",a[i]);
}
return 0;
}

04 数的分解

题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
把2019分解成3个各不相同的正整数之和,并且要求每个正整数
都不包含数字2和4,一共有多少种不同的分解方法?
注意交换3个整数的顺序被视为同一种方法,
例如1000+1001+18和1001+1000+18被视为同一种。

#include<iostream>
using namespace std;
    bool judge(int n){
        while(true){
            if(n==0){
                return 1;
                break;
            }
            if(n%10==2||n%10==4){
                return 0;
                break;
            }
            n/=10;
        }}
int main(){
    int sum=0;
    for(int i=1;i<=672;i++){
        for(int j=i+1;j<2019-i-j;j++){
            if(judge(2019-i-j)&&judge(j)&&judge(i)){
                sum++;
            }
        }
    }
    cout<<sum;
    return 0;
}

05 特别数的和

题目描述
小明对数位中含有2、0、1、9的数字很感兴趣(不包括前导0),在1到40中这样的数包括1、2、9、10至32、39和40,共28个,他们的和是574。
请问,在1到n中,所有这样的数的和是多少?

#include <stdio.h>
int main()
{
    int n,i,j,k,s=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        j=i;
        while(j)
        {
            k=j%10;
            if(k==2 || k==0 || k==1 || k==9)
                {
                    s=s+i;
                    break;
                }
            j=j/10;
        }
    }
    printf("%d",s);
}

06 货物摆放

在这里插入图片描述

#include <stdio.h>
#include <stdlib.h>
int main()
{
    long long arr[3000],i,n=2021041820210418;
    long long a,b,c;
    int count=0,m=0;
    for(i=1;i*i<=n;i++){
      if(n%i==0){//如果n能被i整除
          arr[m]=i;//就把i存到arr里面
          m++;//arr数组向后移一位
        if(n/i!=i){//如果n不是i的平方就把n/i得到的约数也放到arr里面
        arr[m]=n/i;//把n/i之后的数放到arr里面
        m++;//arr数组向后移一位
        }
      }
    }
    for(a=0;a<m;a++){//L的值
        for(b=0;b<m;b++){//W的值
            for(c=0;c<m;c++){//H的值
                if(arr[a]*arr[b]*arr[c]==n) count++;//如果他们的积是n就count+1
            }
        }
    }
    printf("%d",count);//输出count的值
    return 0;
}

07 快速排序

题目描述
本题为代码补全填空题,请将题目中给出的源代码补全,并复制到右侧代码框中,选择对应的编译语言(C/Java)后进行提交。若题目中给出的源代码语言不唯一,则只需选择其一进行补全提交即可。复制后需将源代码中填空部分的下划线删掉,填上你的答案。提交后若未能通过,除考虑填空部分出错外,还需注意是否因在复制后有改动非填空部分产生错误。

以下代码可以从数组a[]中找出第k小的元素。
它使用了类似快速排序中的分治算法,
期望时间复杂度是O(N)的。
请仔细阅读分析源码,填写划线部分缺失的内容。
源代码
C

#include <stdio.h>

int quick_select(int a[], int l, int r, int k) {
    int p = rand() % (r - l + 1) + l;
    int x = a[p];
    {int t = a[p]; a[p] = a[r]; a[r] = t;}
    int i = l, j = r;
    while(i < j) {
        while(i < j && a[i] < x) i++;
        if(i < j) {
            a[j] = a[i];
            j--;
        }
        while(i < j && a[j] > x) j--;
        if(i < j) {
            a[i] = a[j];
            i++;
        }
    }
    a[i] = x;
    p = i;
    if(i - l + 1 == k) return a[i];
    if(i - l + 1 < k) return quick_select( _____________________________ ); //填空
    else return quick_select(a, l, i - 1, k);
}
    
int main()
{
    int a[100];
    int n;
    scanf("%d %d",&n);
    for(int i=0;i<n;i++)
    scanf("%d",&a[i]);
    printf("%d\n", quick_select(a, 0, n-1, 5));
    return 0;
}
#include <stdio.h>
int quick_select(int a[], int l, int r, int k) {
    int p = rand() % (r - l + 1) + l;
    int x = a[p];
    {int t = a[p]; a[p] = a[r]; a[r] = t;}
    int i = l, j = r;
    while(i < j) {
        while(i < j && a[i] < x) i++;
        if(i < j) {
            a[j] = a[i];
            j--;
        }
        while(i < j && a[j] > x) j--;
        if(i < j) {
            a[i] = a[j];
            i++;
        }
    }
    a[i] = x;
    p = i;
    if(i - l + 1 == k) return a[i];
    if(i - l + 1 < k) return quick_select(a, i + 1, r, k - i + l - 1); //填空
    else return quick_select(a, l, i - 1, k);
}

int main()
{
    int a[100];
    int n;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
        scanf("%d",&a[i]);
    printf("%d\n", quick_select(a, 0, n-1, 5));
    return 0;
}

08 百钱买百鸡

我国古代数学家张丘建在《算经》一书中曾提出过著名的“百钱买百鸡”问题,该问题叙述如下:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?翻译过来,意思是公鸡一个五块钱,母鸡一个三块钱,小鸡三个一块钱,现在要用一百块钱买一百只鸡,问公鸡、母鸡、小鸡各多少只?

#include<stdio.h>
int main(){
int a,b,c;//a为公鸡,b为母鸡,c为鸡仔
for(c=0;c<=100;c++){
for(b=0;b<=33;b++){
for(a=0;a<=20;a++){
if(a+b+c==100&&c%3==0&&a*5+3*b+c/3==100){
printf("%d %d %d\n",a,b,c);
}
}
}
} 
return 0;
}

09 百万钱买百万鸡

#include<stdio.h>
int main(){
int a=0,b=250000,c=750000;//a为公鸡,b为母鸡,c为鸡仔
while(b>0){
printf("%d %d %d\n",a,b,c);
a+=4;
b-=7;
c+=3;
}
return 0;
}

在这里插入图片描述

10 阶乘求和

令S=1!+2!+3!+…+202320232023!,求S的末尾9位
数字。
提示:答案首位不为0。

解题思路
不要被题目吓到,虽然题目中给的是2023!,但是只需要结果的最后九位数字,根据唯一分解定理可以知道,当达到40!时,结果
已经是9个0结尾了,也就是说从40!开始,一直到2023!,每一个数字都是最少以9个0结尾,那么其实只需要求1!+2!+3!+…+39!即可,再根据n!=(n-1)!*n,快速计算阶乘,同时在累加的过程中进行取余,即可得到结果

#include <iostream>
using namespace std;
int main()
{
  // 请在此输入您的代码
  cout << "420940313" << endl;
  return 0;
}

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

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

相关文章

【SpringCloud】微服务技术栈入门8 - 黑马旅游微服务项目实战笔记

目录 黑马旅游案例分页查询自动补全安装依赖自定义分词器Completion Suggester 聚合数据聚合的分类Bucket 聚合Metrix 聚合RestClient 实现聚合suggest 查询结果 数据同步同步策略mq 同步 eses 搭设集群 黑马旅游案例 分页查询 前端页面以及对应请求接口已经设置完备&#xff…

制造业单项冠军(国家级、广东省、深圳市)奖励政策及申报对比

制造业单项冠军的头衔含金量极高&#xff0c;是某一细分领域的“领头雁”。下面深科信对“制造业单项冠军”&#xff08;国家级、广东省级、深圳市级&#xff09;的认定标准、奖励政策进行梳理 。 2023年9月25日&#xff0c;工信部办公厅正式发布《关于开展2023年制造业单项冠军…

c++视觉处理---Scharr滤波器

Scharr滤波器&#xff1a; cv::Scharr cv::Scharr 是OpenCV库中用于应用Scharr滤波器的函数。Scharr滤波器通常用于图像处理中的边缘检测和特征提取。这是 cv::Scharr 函数的基本用法&#xff1a; cv::Scharr(src, dst, ddepth, dx, dy, scale, delta, borderType);src: 输入…

C语言为什么for不执行?

C语言为什么for不执行&#xff1f; 一个表达式为初始化 第二个表达式为判断 第三个表达式为调整 如图所示&#xff0c;这是一种最常见&#xff0c;同样的&#xff0c;在这个循环当中同样的也能使用到continue和break关键字最近很多小伙伴找我&#xff0c;说想要一些C语言学习资…

1014蓝桥算法双周赛,学习算法技巧,助力蓝桥杯

家人们&#xff0c;我来免费给大家送福利了&#xff01;&#xff01;&#xff01; 【1014蓝桥算法双周赛 】 背景 蓝桥杯全国软件和信息技术专业人才大赛是由工业和信息化部人才交流中心举办的全国性IT学科赛事。参赛高校超过1200余所&#xff0c;累计参赛人数超过40万人。该…

Java对接微信公众号事件监听回调

1. 公众号开启并配置 2. Java代码实现 1. 验证加密工具类 package cn.com.baidu.wxopen.util.wx;import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Arrays;/*** 验证工具类* 2023年10月12日09:47:04* CBC*/ public cla…

mysql8为什么要开启mysql5中原先的表名称大小写不敏感变成大小写敏感

mysql8为什么要开启mysql5中原先的表名称大小写不敏感变成大小写敏感? MySQL 8.0 对于表名的大小写敏感性的默认设置并没有变更。在 UNIX-like 系统中&#xff0c;表名是大小写敏感的&#xff0c;而在 Windows 中&#xff0c;它们是大小写不敏感的。这与文件系统的行为有关。…

【ROS】使用vscode浏览navigation2源码时,提示:没有那个文件或目录

1、问题描述 使用vscode浏览navigation2源码时,头文件下面有波浪线,并提示:没有那个文件或目录。比如没有:geometry_msgs/msg/polygon.h 错误信息: 无法打开源文件 “geometry_msgs/msg/polygon.h” (dependency of “nav2_controller/controller_server.hpp”)C/C++(16…

40 道 Nginx 精选

什么是Nginx&#xff1f; Nginx是一个 轻量级/高性能的反向代理Web服务器&#xff0c;用于 HTTP、HTTPS、SMTP、POP3 和 IMAP 协议。他实现非常高效的反向代理、负载平衡&#xff0c;他可以处理2-3万并发连接数&#xff0c;官方监测能支持5万并发&#xff0c;现在中国使用ngin…

ubuntu20.04安装genymotion3.5.1

下载和安装genymotion https://www.genymotion.com/download/ wget https://dl.genymotion.com/releases/genymotion-3.5.1/genymotion-3.5.1-linux_x64.bin chmod x genymotion-3.5.1-linux_x64.bin sudo ./genymotion-3.5.1-linux_x64.bin默认位置为&#xff1a;/opt/genym…

PerformanceRunner国产化性能测试工具

国产化性能测试工具PerformanceRunner&#xff08;简称PR&#xff09;通过模拟海量用户并发测试整个系统的承受能力&#xff0c;实现压力测试、性能测试、配置测试、峰值测试等。大限度地缩短测试时间&#xff0c;优化性能和加速应用系统的发布周期。 泽众PR性能测试工具是国内…

数据安全流通的未来趋势

文章目录 每日一句正能量前言01 数据价值与产业崛起02 多数据技术融合创新发展03 数字经济发展的主要动力04 市场规范化与协同繁荣05 安全产业链不断延伸覆盖推荐阅读赠书活动 每日一句正能量 时间这么快。你们很重要&#xff0c;可以走开一会&#xff0c;但是别走散了。 前言 …

身份证读卡器跟OCR有何区别?哪个好?

二代身份证读卡器&#xff08;以下简称读卡器&#xff09;和OCR&#xff08;光学字符识别&#xff09;是两种常见的身份证信息获取技术&#xff0c;它们在原理、功能和应用方面存在一些区别。下面将详细介绍二者的区别并探讨哪个更好。 1. 原理&#xff1a; - 读卡器&#xff…

【SQL】MySQL中的SQL优化、explain执行计划

查看SQL执行频率 -- 查看当前会话统计结果 show session status like Com_______; -- 查看自数据库上次启动至今统计结果 show global status like Com_______;定位低效率执行SQL 两种定位方式&#xff1a; 1.查看慢查询日志 2.通过show processlist查看所有正在运行的线程exp…

使用pymodbus进行modbus-TCP通信

模拟modbus-slave 创建slave 设置 完成 安装pymodbus pip3 install pymodbus2.5.3代码 from pymodbus.client.sync import ModbusTcpClient from pymodbus.bit_read_message import ReadCoilsResponse from pymodbus.register_read_message import ReadInputRegistersRe…

uniapp - 微信小程序新版本发布之后用户端如何手动更新

解疑&#xff1a;微信运行时&#xff0c;会定期检查最近使用的小程序是否有更新。如果有更新&#xff0c;下次小程序启动时会同步进行更新&#xff0c;更新到最新版本后再打开小程序&#xff0c;尽可能保证用户能够尽快使用小程序的最新版本。开发者在后台发布新版本之后&#…

关于Java线程池相关面试题

【更多面试资料请加微信号&#xff1a;suns45】 https://flowus.cn/share/f6cd2cbe-627a-435f-a6e5-1395333f92e8 【FlowUs 息流】&#x1f4e3;suns-Java资料 访问密码&#xff1a;【请加微信号&#xff1a;suns45】 ————线程相关的面试题———— 0&#xff1a;创建线…

如何保持前端开发者的竞争力

这两年&#xff0c;我们经常听到一种声音&#xff0c;那就是“前端已死”。然而&#xff0c;事实并非如此。前端开发者在当今的软件开发中依然扮演着至关重要的角色&#xff0c;它是构建 Web 应用程序所必需的一部分&#xff0c;能够实现动态交互、良好的用户体验和友好的界面设…

vue实现瀑布流

1、在 src 目录下创建 component文件夹&#xff0c;在文件夹中创建 vue文件。 2、在 Vue文件中写入以下内容 <div class"pubu"><div class"left"><div class"pubu-item" v-for"item in left" :key"item.id"…

2023年10月12日历史上的今天大事件早读

公元前539年10月12日波斯国王大流士的军队攻克巴比伦 1492年10月12日西班牙独立日 1492年10月12日哥伦布“发现新大陆” 1773年10月12日法国天文学家梅西叶首次发现具有螺旋结构的星系 1885年10月12日清政府改台湾府为行省 命刘铭传为台湾巡抚 1929年10月12日苏军向张学良…