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

这篇具有很好参考价值的文章主要介绍了蓝桥杯专题-试题版-【龟兔赛跑预测】【回形取数】【阶乘计算】【矩形面积交】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • 点击跳转专栏=>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!=123*…*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/
📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。

温馨提示点击下方卡片获取更多意想不到的资源。
蓝桥杯专题-试题版-【龟兔赛跑预测】【回形取数】【阶乘计算】【矩形面积交】文章来源地址https://www.toymoban.com/news/detail-508613.html

到了这里,关于蓝桥杯专题-试题版-【龟兔赛跑预测】【回形取数】【阶乘计算】【矩形面积交】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 蓝桥杯专题-试题版-【圆的面积】【字符串对比】【字母图形】【核桃的数量】

    点击跳转专栏=Unity3D特效百例 点击跳转专栏=案例项目实战源码 点击跳转专栏=游戏脚本-辅助自动化 点击跳转专栏=Android控件全解手册 点击跳转专栏=Scratch编程案例 点击跳转=软考全系列 点击跳转=蓝桥系列 专注于 Android/Unity 和各种游戏开发技巧,以及 各种资源分享 (网站、

    2024年02月12日
    浏览(44)
  • 蓝桥杯专题-试题版-【地宫取宝】【斐波那契】【波动数列】【小朋友排队】

    点击跳转专栏=Unity3D特效百例 点击跳转专栏=案例项目实战源码 点击跳转专栏=游戏脚本-辅助自动化 点击跳转专栏=Android控件全解手册 点击跳转专栏=Scratch编程案例 点击跳转=软考全系列 点击跳转=蓝桥系列 专注于 Android/Unity 和各种游戏开发技巧,以及 各种资源分享 (网站、

    2024年02月11日
    浏览(58)
  • 蓝桥杯专题-试题版含答案-【风险度量】【括号配对问题】【ASCII码排序】【素数求和】

    点击跳转专栏=Unity3D特效百例 点击跳转专栏=案例项目实战源码 点击跳转专栏=游戏脚本-辅助自动化 点击跳转专栏=Android控件全解手册 点击跳转专栏=Scratch编程案例 点击跳转=软考全系列 点击跳转=蓝桥系列 专注于 Android/Unity 和各种游戏开发技巧,以及 各种资源分享 (网站、

    2024年02月11日
    浏览(86)
  • 蓝桥杯专题-试题版-【01字符串】【2n皇后问题】【A+B问题】【Fibonacci数列】

    点击跳转专栏=Unity3D特效百例 点击跳转专栏=案例项目实战源码 点击跳转专栏=游戏脚本-辅助自动化 点击跳转专栏=Android控件全解手册 点击跳转专栏=Scratch编程案例 点击跳转=软考全系列 点击跳转=蓝桥系列 专注于 Android/Unity 和各种游戏开发技巧,以及 各种资源分享 (网站、

    2024年02月11日
    浏览(44)
  • 【蓝桥杯试题】暴力枚举题型

    💃🏼 本人简介:男 👶🏼 年龄:18 🤞 作者:那就叫我亮亮叭 📕 专栏:蓝桥杯试题 有一个 n×m 方格的棋盘,求其方格包含多少正方形、长方形(不包含正方形)。 输入格式 一行,两个正整数 n,m(n ≤ 5000, m ≤ 5000)。 输出格式 一行,两个正整数,分别表示方格包含多少

    2023年04月08日
    浏览(61)
  • 蓝桥杯 试题 算法训练 印章

    动态规划: 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 共有n种图案的印章,每种图案的出现概率相同。小A买了m张印章,求小A集齐n种印章的概率。 输入格式 一行两个正整数n和m 输出格式 一个实数P表示答案,保留4位小数。 样例输入 2 3 样例输出 0.7500 数据规模和约

    2024年02月14日
    浏览(49)
  • 蓝桥杯——二分专题

       二分套路题: 最小值最大化,最大值最小化 运用二分满足条件: 有界,单调。 找=x的第一个,mid=(low+high)//2 , 没有就找比他大的下一个数   找=x的第一个,mid=(low+high+1)//2 , 没有就找比他小的前一个数 1.分巧克力(根据题意转为二分,二分找边长N) 更合理的写法

    2024年02月01日
    浏览(48)
  • 【蓝桥杯冲刺】日期类专题特训

    目录 1. 日期累加 题目描述 输入 输出 代码 2. 日期差值 题目描述 输入 输出 代码 3. 打印日期 题目描述 输入 输出 代码 写在最后: 题目链接: 日期累加 输入 输出 题目链接:日期差值 输入 输出 题目链接:打印日期 输入 输出 日期类的题目大同小异, 把日期类的基本思路练

    2023年04月16日
    浏览(43)
  • C语言算法赛——蓝桥杯(省赛试题)

         

    2024年01月22日
    浏览(35)
  • 【蓝桥杯C/C++】专题六:动态规划

    在这里插入图片描述 本专题将讲解 最难理解 的算法之一:动态规划。介绍动态规划的基本概念、算法原理以及应用场景。首先,我们将介绍动态规划的定义和特点,以及它与递归、贪心算法的区别。接着,我们将详细介绍动态规划的解题思路和算法流程,包括状态转移方程

    2024年02月01日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包