蓝桥杯专题-试题版-【龟兔赛跑预测】【回形取数】【阶乘计算】【矩形面积交】

news2024/12/22 17:58:20
  • 点击跳转专栏=>Unity3D特效百例
  • 点击跳转专栏=>案例项目实战源码
  • 点击跳转专栏=>游戏脚本-辅助自动化
  • 点击跳转专栏=>Android控件全解手册
  • 点击跳转专栏=>Scratch编程案例
  • 点击跳转=>软考全系列
  • 点击跳转=>蓝桥系列

👉关于作者

专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)
有什么需要欢迎底部卡片私我,获取更多支持,交流让学习不再孤单

芝麻粒儿-空名先生

👉实践过程

需要所有整理的文档可底部卡片联系我,直接发压缩包。

😜龟兔赛跑预测

问题描述
  话说这个世界上有各种各样的兔子和乌龟,但是研究发现,所有的兔子和乌龟都有一个共同的特点——喜欢赛跑。于是世界上各个角落都不断在发生着乌龟和兔子的比赛,小华对此很感兴趣,于是决定研究不同兔子和乌龟的赛跑。他发现,兔子虽然跑比乌龟快,但它们有众所周知的毛病——骄傲且懒惰,于是在与乌龟的比赛中,一旦任一秒结束后兔子发现自己领先t米或以上,它们就会停下来休息s秒。对于不同的兔子,t,s的数值是不同的,但是所有的乌龟却是一致——它们不到终点决不停止。
  然而有些比赛相当漫长,全程观看会耗费大量时间,而小华发现只要在每场比赛开始后记录下兔子和乌龟的数据——兔子的速度v1(表示每秒兔子能跑v1米),乌龟的速度v2,以及兔子对应的t,s值,以及赛道的长度l——就能预测出比赛的结果。但是小华很懒,不想通过手工计算推测出比赛的结果,于是他找到了你——清华大学计算机系的高才生——请求帮助,请你写一个程序,对于输入的一场比赛的数据v1,v2,t,s,l,预测该场比赛的结果。
输入格式
  输入只有一行,包含用空格隔开的五个正整数v1,v2,t,s,l,其中(v1,v2<=100;t<=300;s<=10;l<=10000且为v1,v2的公倍数)
输出格式
  输出包含两行,第一行输出比赛结果——一个大写字母“T”或“R”或“D”,分别表示乌龟获胜,兔子获胜,或者两者同时到达终点。
  第二行输出一个正整数,表示获胜者(或者双方同时)到达终点所耗费的时间(秒数)。
样例输入
10 5 5 2 20
样例输出
D
4
样例输入
10 5 5 1 20
样例输出
R
3
样例输入
10 5 5 3 20
样例输出
T
4
#include <stdio.h>

int main()
{
    int v1, v2, t, s, l;
    scanf("%d%d%d%d%d", &v1, &v2, &t, &s, &l);
    
    int i, t1 = 0, t2 = l / v2;
    int s1 = 0, s2 = 0;
    for (i = 1; i <= t2; i++)
    {
        s2 += v2;
        if (t1 < i)
        {
            t1 = i;
            s1 += v1;
        }
        if (s1 == l)
            break;
        if (t1 == i && s1 - s2 >= t)
            t1 += s;
    }
    
    if (s1 == l && s2 == l)
        printf("D\n%d", t2);
    else if (s1 == l)
        printf("R\n%d", t1);
    else
        printf("T\n%d", t2);
    
    return 0;
}

😜回形取数

问题描述
  回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。

输入格式
  输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。
输出格式
  输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。

样例输入
3 3
1 2 3
4 5 6
7 8 9
样例输出
1 4 7 8 9 6 3 2 5

样例输入
3 2
1 2
3 4
5 6
样例输出
1 3 5 6 4 2
#include <stdio.h>

int main()
{
    int i, j, m, n;
    int a[200][200];
    
    scanf("%d%d", &m, &n);
    for (i = 0; i < m; i++)
        for (j = 0; j < n; j++)
            scanf("%d", &a[i][j]);
    
    for (i = 0; i < (n + 1) / 2 && i < (m + 1) / 2; i++)
    {
        for (j = i; j < m - i; j++)
            printf("%d ", a[j][i]);
        for (j = i + 1; j < n - i; j++)
            printf("%d ", a[m - i - 1][j]);
        if (n - i - 1 > i)
            for (j = m - i - 2; j >= i; j--)
                printf("%d ", a[j][n - i - 1]);
        if (m - i - 1 > i)
            for (j = n - i - 2; j > i; j--)
                printf("%d ", a[i][j]);
    }
    
    return 0;
}

😜阶乘计算

问题描述
  输入一个正整数n,输出n!的值。
  其中n!=1*2*3**n。
算法描述
  n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推。
  将a乘以一个整数k变为将数组A的每一个元素都乘以k,请注意处理相应的进位。
  首先将a设为1,然后乘2,乘3,当乘到n时,即得到了n!的值。
输入格式
  输入包含一个正整数n,n<=1000。
输出格式
  输出n!的准确值。
样例输入
10
样例输出
3628800
#include <stdio.h>

int calc(char* p, int len, int n, char* q)
{
    int i, j = 0, m = 0;
    for (i = 0; i < len; i++)
    {
        m += p[i] * n;
        q[j++] = m % 10;
        m /= 10;
    }
    while (m > 0)
    {
        q[j++] = m % 10;
        m /= 10;
    }
    return j;
}

void print(char* p, int len)
{
    int i = len - 1;
    while (i >= 0) printf("%d", p[i--]);
}

int main()
{
    int i, j = 0, k = 1, n;
    char s1[3000], s2[3000] = {1};
    scanf("%d", &n);
    for (i = 1; i <= n; i++)
    {
        if (j > 0)
        {
            k = calc(s1, j, i, s2);
            j = 0;
        }
        else
        {
            j = calc(s2, k, i, s1);
            k = 0;
        }
    }
    if (j > 0)
        print(s1, j);
    else
        print(s2, k);
    return 0;
}

😜矩形面积交

问题描述
  平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积。

输入格式
  输入仅包含两行,每行描述一个矩形。
  在每行中,给出矩形的一对相对顶点的坐标,每个点的坐标都用两个绝对值不超过10^7的实数表示。
输出格式
  输出仅包含一个实数,为交的面积,保留到小数后两位。

样例输入
1 1 3 3
2 2 4 4
样例输出
1.00
#include <stdio.h>

double dabs(double a)
{
    return a > 0 ? a : -a;
}

int in(double x, double y, double* a)
{
    return (((x >= a[0] && x <= a[2] || x <= a[0] && x >= a[2]) &&
        (y >= a[1] && y <= a[3] || y <= a[1] && y >= a[3])) ? 1 : 0);
}

double part(double a, double b, double c, double d)
{
    return ((a > c && a < d || a < c && a > d) ? a : b);
}

int count(double* a, double* b, int* c)
{
    c[0] = in(a[0], a[1], b);
    c[1] = in(a[0], a[3], b);
    c[2] = in(a[2], a[3], b);
    c[3] = in(a[2], a[1], b);
    return c[0] + c[1] + c[2] + c[3];
}

int one(int* a)
{
    return (a[0] ? 0 : a[1] ? 1 : a[2] ? 2 : 3);
}

int rone(int* a)
{
    return (a[3] ? 3 : a[2] ? 2 : a[1] ? 1 : 0);
}

double mixed1(int* a, int* b, double* c, double* d)
{
    return dabs((c[one(a) < 2 ? 0 : 2] - d[one(b) < 2 ? 0 : 2]) *
        (c[one(a) % 3 == 0 ? 1 : 3] - d[one(b) % 3 == 0 ? 1 : 3]));
}

double mixed2(int* a, double* b, double* c)
{
    return dabs((one(a) / 2 == rone(a) / 2)
        ? (b[1] - b[3]) * (b[one(a) / 2 * 2] - part(c[0], c[2], b[0], b[2]))
        : (b[0] - b[2]) * (b[one(a) % 3 == 0 ? 1 : 3] - part(c[1], c[3], b[1], b[3])));
}

double mixed4(double* a)
{
    return dabs((a[0] - a[2]) * (a[1] - a[3]));
}

int main()
{
    int i, j;
    double coords[2][4];
    for (i = 0; i < 2; i++)
        for(j = 0; j < 4; j++)
            scanf("%lf", &coords[i][j]);

    int in[2][4];
    int a = count(coords[0], coords[1], in[0]);
    int b = count(coords[1], coords[0], in[1]);

    double mixed = 0;
    if (a == 1) {
        mixed = mixed1(in[0], in[1], coords[0], coords[1]);
    } else if (a == 2) {
        mixed = mixed2(in[0], coords[0], coords[1]);
    } else if (a == 4) {
        mixed = mixed4(coords[0]);
    } else if (b == 2) {
        mixed = mixed2(in[1], coords[1], coords[0]);
    } else if (b == 4) {
        mixed = mixed4(coords[1]);
    }
    printf("%.2lf", mixed);
    
    return 0;
}

👉其他

📢作者:小空和小芝中的小空
📢转载说明-务必注明来源:https://zhima.blog.csdn.net/
📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。

温馨提示点击下方卡片获取更多意想不到的资源。
空名先生

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

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

相关文章

计算机的性能指标

计算机的主要性能指标: 机器字长: 指参与运算的基本数位, 它是由加法器, 寄存器的数位决定的, 所以及其资产一般等于内部寄存器的大小 数据路通宽度: 数据总线一次能够并行传送信息的位数, 这里所说的数据通路宽度实际是指外部数据总线的宽度 主存容量: 一个存储器所能存储的…

C语言王国探险记之常量的四大护卫

王国探险记系列 文章目录&#xff08;3&#xff09; 前言 一、常量是什么&#xff1f; 二、常量的第一护卫&#xff1a;字面常量 1.什么是字面常量? 三、常量的第二护卫&#xff1a;const修饰的常变量 1.什么是const修饰的常变量? 2&#xff0c;证明const修饰的常变量…

nginx部署多个前端项目

前端采用vue框架&#xff0c;主要介绍在同一个ipport下&#xff08;或域名&#xff09;&#xff0c;通过访问不同的子路径部署多个项目 把前端打包好的项目直接放进 nginx/html 目录下面&#xff0c; 下面展示根据不同的路由模式的nginx配置&#x1f447; 路由采用hash模式 浏…

基于深度学习YOLOv5电动车头盔佩戴检测设计毕业设计

wx供重浩&#xff1a;创享日记 对话框发送&#xff1a;625头盔 获取完整源码源文件标注好的数据集(在源码文件夹->yolov5-5.0->VOCdevkit)优秀论文答辩PPT及文稿等 设计总说明 在许多非机动车交通事故中&#xff0c;未佩戴头盔是造成驾驶人受伤或死亡的主要原因&#xf…

永磁电机中的磁钢

稀土永磁最大的应用领域就是永磁电机&#xff0c;电机俗称马达&#xff0c;广义上的电机包含了将电能转换成机械能的电动机&#xff0c;和将机械能转换成电能的发电机&#xff0c;不管是电动机还是发电机&#xff0c;都是利用电磁感应定律或电磁力定律作为基础原理的电气设备。…

【教学类-36-02】动物头饰制作(midjounery动物简笔画四图)

作品展示 &#xff08;用midjounery动物简笔画四图作为头饰上的动物&#xff0c;正方形折纸的辅助黏贴物&#xff09; 背景需求&#xff1a; 1、用midjounery生成简笔画动物图案&#xff08;四张预览&#xff09; 2、收集各种不同的动物的一张图片.png 3、设计一款中班幼儿用…

python spider 爬虫 之 解析 xpath 、jsonpath、BeautifulSoup (-)

Xpath 插件下载及安装 下载地址&#xff1a;https://chrome.zzzmh.cn/info/hgimnogjllphhhkhlmebbmlgjoejdpjl 安装xpath 如果下载的xpath后缀是crx 格式的&#xff0c; 直接改成zip格式&#xff0c;然后直接拖拽到上面的界面中便可&#xff0c; 查看是否安装成功&#xff0c…

DOM操作——获取元素的方式

关注“大前端私房菜”微信公众号&#xff0c;回复暗号【面试宝典】即可免费领取107页前端面试题。 DOM-文档对象模型 DOM&#xff08;Document Object Model&#xff09;&#xff1a;文档对象模型 其实就是操作 html 中的标签的一些能力&#xff0c;或者说是一整套操作文档流的…

10年内打造量子超级计算机,行吗?

光子盒研究院 在未来十年内&#xff0c;微软打算建造一台量子超级计算机。 本周四&#xff0c;微软制定了一个开发自己的量子超级计算机的战略蓝图。设计它的团队将花费至少10年的研究时间&#xff0c;来建造一台能够每秒进行一百万次可靠量子操作的机器。 微软声称&#xff0c…

C++的access()函数

文章目录 函数功能头文件函数原型参数说明示例 函数功能 确定文件是否存在或者判断读写执行权限&#xff1b;确定文件夹是否存在即&#xff0c;检查某个文件的存取方式&#xff0c;比如说是只读方式、只写方式等。如果指定的存取方式有效&#xff0c;则函数返回0&#xff0c;否…

津津乐道设计模式 - 观察者模式详解(学会察言观色再也不怕女朋友生气了)

&#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Micro麦可乐的博客 &#x1f425;《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程&#xff0c;入门到实战 &#x1f33a;《RabbitMQ》…

Nginx 优化配置及详细注释~转

Nginx 优化配置及详细注释 转https://www.cnblogs.com/taiyonghai/p/5610112.html Nginx 的nginx.conf文件&#xff0c;是调优后的&#xff0c;具体影响已经写清楚注释&#xff0c;可以拿来用&#xff0c;有一些设置无效&#xff0c;我备注上了&#xff0c;不知道是不是版本的…

《kafka 核心技术与实战》课程学习笔记(七)

生产者压缩算法 怎么压缩&#xff1f; 压缩&#xff08;compression&#xff09;秉承了用时间去换空间的经典 trade-off 思想&#xff0c;具体来说就是用 CPU 时间去换磁盘空间或网络 I/O 传输量&#xff0c;希望以较小的 CPU 开销带来更少的磁盘占用或更少的网络 I/O 传输。…

初识mysql数据库之基础操作

目录 一、库的操作 1. 创建数据库 2. 数据库的编码集 2.1 数据库的编码问题 2.2 查看系统默认字符集和校验规则 2.3 创建数据库时指定字符集和校验集 2.4 校验规则对数据库的影响 3. 进入数据库 4. 确认自己当前所处的数据库 5. 修改数据库的编码集 6. 查看创建数据…

FPGA解码MIPI视频 OV5647 2line CSI2 720P分辨率采集 提供工程源码和技术支持

目录 1、前言2、Xilinx官方主推的MIPI解码方案3、本 MIPI CSI2 模块性能及其优越性4、我这里已有的 MIPI 编解码方案5、详细设计方案6、vivado工程介绍7、上板调试验证8、福利&#xff1a;工程代码的获取 1、前言 FPGA图像采集领域目前协议最复杂、技术难度最高的应该就是MIPI…

现代民机“飞行管理系统(FMS)”的功能和组成

01 什么是 “飞行管理系统”&#xff1f; 飞行管理系统&#xff08;FMS, Flight Management System&#xff09;&#xff0c;中文简称 “飞管”&#xff0c;是飞机航电系统的重要一员。 FMS 自 20 世纪 70 年代诞生以来&#xff0c;目前已有了跨越式发展。它作为航电关键系统&…

100种思维模型之质量控制理论思维模型-83

质量控制理论思维模型&#xff0c;又叫做戴明环思维模型&#xff0c;即PDCA循环思维模型。 在上世纪50年代&#xff0c;日本的商品和今天中国的商品一样&#xff0c;都是低质低价的代表&#xff0c;后来日本引入了戴明博士的质量控制理论&#xff0c;即PDCA循环理论&#xff0…

浅谈无线测温系统在高压开关柜中的应用

关注acrelzxz&#xff0c;了解更多详情 摘要&#xff1a;高压开关柜是配电系统中重要的组成部分&#xff0c;其主要作用是控制电荷、分配电能和开断电流等&#xff0c;对维持系统的稳定性有一定的保障作用。将无线测温技术应用于高压开关柜&#xff0c;可以实现对其进行实时的…

汽车芯片,竞逐新周期

在过去几年&#xff0c;SoC几乎成了智能汽车行业皇冠上的明珠。汽车芯片从通用型、分散化的单一功能芯片&#xff08;MCU&#xff09;快速转向集成化的多功能SoC&#xff08;System on Chip&#xff09;芯片。 比如&#xff0c;在智能座舱领域&#xff0c;CPU算力用于提高任务处…

国产chatgpt:基于chatGLM微调nlp分类任务

文章目录 一、源码网址1. 硬件设施&#xff1a;2. INT4 量化示例 二、重要的开源社区功能&#xff1a;网址&#xff1a;使用方法&#xff1a;利用方法&#xff1a;对 NLP 工作者的作用&#xff1a;对大模型工程师的用处&#xff1a; 三、重要的开源库四、提示词工程五、进行分类…