算法竞赛入门【码蹄集新手村600题】(MT1180-1200)C语言

news2024/11/17 3:31:13

算法竞赛入门【码蹄集新手村600题】(MT1180-1200)C语言

  • 目录
    • MT1181 圆包含
    • MT1182 圆相交
    • MT1183 矩形包含
    • MT1184 矩形相交
    • MT1185 while循环
    • MT1186 do-while循环
    • MT1187 累加和
    • MT1188 平均值
    • MT1189 正数负数的和
    • MT1190 分数乘法
    • MT1191 减半
    • MT1192 翻倍
    • MT1193 偶数的平方和
    • MT1194 奇数的平方和
    • MT1195 公式求和
    • MT1196 阶乘
    • MT1197 阶乘和
    • MT1198 阶乘差
    • MT1199 公式计算
    • MT1200 常数e

在这里插入图片描述
码蹄集网站地址:https://www.matiji.net/exam/ojquestionlist


目录

MT1181 圆包含

(1)题目
输入2个圆的圆心的坐标值(x,y)和半径,判断断一个圆是否完全包含另一个圆,输出YES或者NO。另:内切不算做完全包含。


格式

输入格式: 
输入整型,空格分隔。每行输入一组信息。

输出格式: 
输出YES或者NO

样例1

输入格式:
-20 20 50
50 50 1

输出格式: 
NO

(2)参考代码

#include<stdio.h>
#include<math.h>
int main()
{
    int x1, y1, r1;
    int x2, y2, r2;
    scanf("%d %d %d", &x1, &y1, &r1);
    scanf("%d %d %d", &x2, &y2, &r2);
    int AB;
    if (r1 > r2)
    {
        AB = sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
        if (AB < (r1 - r2))
        {
            printf("YES");
        }
        else
        {
            printf("NO");
        }
    }
    else if (r1 < r2)
    {
        AB = sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
        if (AB < (r2 - r1))
        {
            printf("YES");
        }
        else
        {
            printf("NO");
        }
    }
    else
    {
        printf("NO");
    }
    return 0;
}

MT1182 圆相交

(1)题目
输入2个圆的圆心的坐标值(x,y)和半径,判断2个圆是否相交,输出YES或者NO。


格式

输入格式: 
输入整型,空格分隔。每行输入一组信息。

输出格式: 
输出YES或者NO

样例1

输入格式:
-20 20 50
50 50 1

输出格式: 
NO

(2)参考代码

#include<stdio.h>
#include<math.h>
int main() 
{ 
    int x1, y1, r1, x2, y2, r2;
    scanf("%d %d %d", &x1, &y1, &r1);
    scanf("%d %d %d", &x2, &y2, &r2);
    int AB = sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
    if (r1 >= r2)
    {
        if (AB >= (r1 - r2) && AB < (r1 + r2))
        {
            printf("YES");
        }
        else
        {
            printf("NO");
        }
    }
    else
    {
        if (AB >= (r2 - r1) && AB < (r1 + r2))
        {
            printf("YES");
        }
        else
        {
            printf("NO");
        }
    }
    return 0; 
}

MT1183 矩形包含

(1)题目
输入2个矩形的左上角和右下角两个点的坐标值(x,y),判断2个矩形是否相互包含(一个在另一个内部,边框不重叠),输出YES或者NO。矩形的边应与x,y轴相平行。


格式

输入格式:
输入整型,空格分隔。 每行输入一组信息。


输出格式:
输出YES或者NO

样例1

输入:
-20 20 20 -10 
-10 10 10 -5

输出:
YES

(2)参考代码

#include<stdio.h>
int main()
{
    int x1, y1, x2, y2, x3, y3, x4, y4;
    scanf("%d %d %d %d", &x1, &y1, &x2, &y2);
    scanf("%d %d %d %d", &x3, &y3, &x4, &y4);
    if ((x1 < x3 && x3 < x2 && y3 < y1 && y3 > y2) && (x1 < x4 && x4 < x2 && y4 < y1 && y4 > y2))
    {
        printf("YES");
    }
    else if ((x3 < x1 && x1 < x4 && y1 < y3 && y1 > y4) && (x3 < x2 && x2 < x4 && y2 < y3 && y2 > y4))
    {
        printf("YES");
    }
    else
    {
        printf("NO");
    }
    return 0;
}

MT1184 矩形相交

(1)题目
输入2个矩形的左上角和右下角两个点的坐标值(x,y),判断2个矩形是否相交,输出YES或者NO。矩形的边应与x,y轴相平行。假定输入坐标能顺利构成矩形,不考虑无效矩形的情况。


格式

输入格式:
输入整型,空格分隔。 每行输入一组信息。


输出格式:
输出YES或者NO

样例1

输入:
-20 20 20 -10 
-10 10 10 -5

输出:
NO

(2)参考代码



MT1185 while循环

(1)题目
请编写一个简单程序,从小到大输出所有小于8的正整数和0(从0开始输出)。


格式

输入格式:
无


输出格式:
输出整型,空格分隔 

样例1

输入:
无

输出:
0 1 2 3 4 5 6 7

(2)参考代码

#include<stdio.h>
int main() 
{
    int i = 0;
    while (i < 8)
    {
        printf("%d ", i);
        i++;
    }
    return 0; 
}

MT1186 do-while循环

(1)题目
请编写一个简单程序,从大到小输出所有小于n的正整数,直到0为止(不含0)。n从键盘输入


格式

输入格式:
输入整型数n


输出格式:
输出整型,空格分隔 

样例1

输入:
10

输出:
10 9 8 7 6 5 4 3 2 1

(2)参考代码

#include<stdio.h>
int main() 
{
    int n;
    scanf("%d", &n);
    do
    {
        printf("%d ", n);
        n--;
    }
    while(n);
    return 0; 
}

MT1187 累加和

(1)题目
从1累加到10,输出累加和


格式

输入格式:
无


输出格式:
输出整型

样例1

输入:
无

输出:
55

(2)参考代码

#include<stdio.h>
int main() 
{
    int i;
    int sum = 0;
    for (i=0;i<=10;i++)
    {
        sum += i;
    }
    printf("%d", sum);
    return 0; 
}

MT1188 平均值

(1)题目
请编写一个简单程序,随机输入n个数字,输出他们的平均值


格式

输入格式:
输入分两行,第一行输入n,第二行输入n个float型数据,空格分隔


输出格式:
输出float型,空格分隔,保留2位小数

样例1

输入:
5
1 3 6 2 5.2 

输出:
3.44

(2)参考代码

#include<stdio.h>
int main() 
{
    int n, i;
    float temp, sum = 0;
    scanf("%d", &n);
    for (i=0;i<n;i++)
    {
        scanf("%f", &temp);
        sum += temp;
    }
    printf("%.2f", sum/n);
    return 0; 
}

MT1189 正数负数的和

(1)题目
编写程序先输入n,再输入n个实数并分别统计正数的和、负数的和,然后输出统计结果。


格式

输入格式:
输入分两行,第一行输入整数n,第二行输入n个实数,空格分隔。


输出格式:
输出正数的和,和负数的和,实型,中间一个空格

样例1

输入:
4  
1 -3 0.5 -2

输出:
1.500000 -5.000000

(2)参考代码

#include<stdio.h>
int main() 
{
    int n, i;
    double temp, p_sum = 0, n_sum = 0;
    scanf("%d", &n);
    for (i=0;i<n;i++)
    {
        scanf("%lf", &temp);
        if (temp >= 0)
        {
            p_sum += temp;
        }
        else
        {
            n_sum += temp;
        }
    }
    printf("%lf %lf", p_sum, n_sum);
    return 0; 
}

MT1190 分数乘法

(1)题目
输入5组分数,对他们进行乘法运算,输出结果。不考虑分母为0等特殊情况。


格式

输入格式:
输入整型,每组一行,如样例所示。


输出格式:
输出计算结果实型,如样例所示。

样例1

输入:
1/2 1/4  
2/3 1/7  
3/5 2/7
3/13 2/5
1/9 11/15

输出:
0.125000  
0.095238  
0.171429  
0.092308  
0.081481

(2)参考代码

#include<stdio.h>
int main() 
{
    double x1, y1, x2, y2, i, result;
    for (i=0;i<5;i++)
    {
        scanf("%lf/%lf %lf/%lf", &x1, &y1, &x2, &y2);
        result = (x1 / y1) * (x2 / y2);
        printf("%lf\n", result);
    }
    return 0; 
}

MT1191 减半

(1)题目
输入两个值N和M,输出N做M次减半后的值。比如100,减半后依次为50, 25, 12…,减半3次后是12。输入不考虑0,负数或者其他特殊情况。


格式

输入格式:
输入为整型,空格分隔


输出格式:
输出为整型

样例1

输入:
100 3

输出:
12

(2)参考代码

#include<stdio.h>
int main() 
{
    int N, M;
    scanf("%d %d", &N, &M);
    for (int i=0;i<M;i++)
    {
        N /= 2;
    }
    printf("%d", N);
    return 0; 
}

MT1192 翻倍

(1)题目
输入两个值N和M。输出N做M次翻倍后的值。比如12,翻倍后依次为24, 48, 96…。输入不考虑0,负数或者其他特殊情况。


格式

输入格式:
输入为整型,空格分隔


输出格式:
输出为整型

样例1

输入:
12 3

输出:
96

(2)参考代码

#include<stdio.h>
int main() 
{
    int N, M;
    scanf("%d %d", &N, &M);
    for (int i=0;i<M;i++)
    {
        N *= 2;
    }
    printf("%d", N);
    return 0; 
}

MT1193 偶数的平方和

(1)题目
输入正整数N,求前N个偶数的平方和。不考虑溢出。


格式

输入格式:
输入正整数N


输出格式:
输入整型

样例1

输入:
3

输出:
56

备注

本题第一个偶数从2起算

(2)参考代码

#include<stdio.h>
int main() 
{
    int N, i, sum = 0;
    scanf("%d", &N);
    for (i=2;i<=2*N;i)
    {
        sum += i * i;
        i += 2;
    }
    printf("%d\n", sum);
    return 0; 
}

MT1194 奇数的平方和

(1)题目
输入正整数N,求前N个奇数的平方和。不考虑溢出。


格式

输入格式:
输入正整数N


输出格式:
输入整型

样例1

输入:
3

输出:
35

(2)参考代码

#include<stdio.h>
int main() 
{
    int N, i, sum = 0;
    scanf("%d", &N);
    for (i = 1; i <= 2 * N - 1; i)
    {
        sum += i * i;
        i += 2;
    }
    printf("%d\n", sum);
    return 0; 
}

MT1195 公式求和

(1)题目
输入正整数N和M,按照下列公式求和。
在这里插入图片描述


格式

输入格式:
输入整型,空格分隔


输出格式:
输出实型

样例1

输入:
2 4

输出:
0.42361

(2)参考代码

#include<stdio.h>
int main() 
{
    int N, M, i;
    double sum = 0;
    scanf("%d %d", &N, &M);
    for (i=N;i<=M;i++)
    {
        sum += 1.0/(i*i);
    }
    printf("%.5lf", sum);
    return 0; 
}

MT1196 阶乘

(1)题目
请编写一个简单程序,输入正整数n,输出n的阶乘。


格式

输入格式:
输入整型


输出格式:
输出整型 

样例1

输入:
5

输出:
5!=120

(2)参考代码

#include<stdio.h>
int main() 
{ 
    int n, sum = 1;
    scanf("%d", &n);
    for (int i=1;i<=n;i++)
    {
        sum *= i;
    }
    printf("%d!=%d", n, sum);
    return 0; 
}

MT1197 阶乘和

(1)题目
求1!+2!+3!+…+n!


格式

输入格式:
输入为整型


输出格式:
输出为整型

样例1

输入:
5

输出:
153

(2)参考代码

#include<stdio.h>
int main() 
{ 
    int n, num, sum = 0;
    scanf("%d", &n);
    for (int i=1;i<=n;i++)
    {
        num = 1;
        for (int j=1;j<=i;j++)
        {
            num *= j;
        }
        sum += num;
    }
    printf("%d", sum);
    return 0; 
}

MT1198 阶乘差

(1)题目
求1!-2!-3!-…-n!


格式

输入格式:
输入为整型


输出格式:
输出为整型

样例1

输入:
5

输出:
-151

(2)参考代码

#include<stdio.h>
int main() 
{ 
    int n, num, sum = 2;
    scanf("%d", &n);
    for (int i=1;i<=n;i++)
    {
        num = 1;
        for (int j=1;j<=i;j++)
        {
            num *= j;
        }
        sum -= num;
    }
    printf("%d", sum);
    return 0; 
}

MT1199 公式计算

(1)题目
输入正整数n和r,计算公式 (n!) / (n-r)!。


格式

输入格式:
输入整型,空格分隔。


输出格式:
输出实型,保留2位小数。

样例1

输入:
2 1

输出:
2.00

(2)参考代码

#include<stdio.h>
int main() 
{ 
    int n, r, i;
    scanf("%d %d", &n, &r);
    double num1 = 1, num2 = 1;
    for (i=1;i<=n;i++)
    {
        num1 *= i;
    }
    for (i=1;i<=(n-r);i++)
    {
        num2 *= i;
    }
    printf("%.2lf\n", num1 / num2);
    return 0; 
}

MT1200 常数e

(1)题目
常数e的值可以表示为无穷级数: e=1+1/1!+1/2!+1/3! +… 1/n!编写一个程序,计算e的值,其中n是用户输入的整数。输入不考虑0,负数或者其他特殊情况。


格式

输入格式:
输入整型,空格分隔。

输出格式: 
输出实型,保留2位小数。

样例1

输入格式: 
7

输出格式: 
2.72

(2)参考代码

#include<stdio.h>
int main() 
{ 
    int n, sum;
    double e = 1;
    scanf("%d", &n);
    for (int i=1;i<=n;i++)
    {
        sum = 1;
        for (int j=1;j<=i;j++)
        {
            sum *= j;
        }
        e += 1.0 / sum;
    }
    printf("%.2lf", e);
    return 0; 
}

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

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

相关文章

Spring事件监听机制

前言 事件监听机制其原理就是观察者模式&#xff0c;而观察者模式又被称为发布-订阅模式。 观察者模式将有依赖关系的对象抽象为了观察者和主题两个不同的角色&#xff0c;多个观察者同时观察一个主题&#xff0c;两者只通过抽象接口保持松耦合状态&#xff0c;这样双方可以相…

C++11并发与多线程笔记(10) future其他成员函数、shared_future、atomic

C11并发与多线程笔记&#xff08;10&#xff09; future其他成员函数、shared_future、atomic 1、std::future 的成员函数1.1 std::future_status 2、std::shared_future&#xff1a;也是个类模板3、std::atomic原子操作3.1 原子操作概念引出范例&#xff1a;3.2 基本的std::at…

CTFhub-sql注入-绕过空格过滤

常用绕过空格过滤的方法&#xff1a; /**/、()、%0a 1.判断是否存在sqli注入 1 1/**/union/**/select/**/11 1/**/union/**/select/**/12 如果1/**/union/**/select/**/11的显示结果与1/**/union/**/select/**/12的显示结果不一样&#xff0c; 与1的结果一样说明存在注入…

JMeter中利用Jython运行Python代码

介绍 Jython是Python和Java的结合。Jython语法和Python一样&#xff0c;不但可以使用Python的库&#xff0c;而且还可以调用Java的库。结合了Python和Java的优点&#xff0c;也就是说Jython既有动态语言的灵活性&#xff0c;又可以用静态语言的强大的类库。其实&#xff0c;我…

Unity进阶–通过PhotonServer实现联网登录注册功能(客户端)–PhotonServer(三)

文章目录 Unity进阶–通过PhotonServer实现联网登录注册功能(客户端)–PhotonServer(三)前情提要客户端部分 Unity进阶–通过PhotonServer实现联网登录注册功能(客户端)–PhotonServer(三) 前情提要 单例泛型类 using System.Collections; using System.Collections.Generic; …

Android6:片段和导航

创建项目Secret Message strings.xml <resources><string name"app_name">Secret Message</string><string name"welcome_text">Welcome to the Secret Message app!Use this app to encrypt a secret message.Click on the Star…

周末时间在家重新做了一个电脑系统,手艺没有丢!!!

有个朋友的电脑抱怨自己太卡&#xff0c;有缘见过几次他的电脑&#xff0c;确实哦&#xff0c;10年的老笔记本了&#xff0c;关键还是日本买的东芝t552,配置4G500G&#xff0c;昨天晚上朋友提过来的时候&#xff0c;大吃已经&#xff0c;还以为是电磁炉呢。看下面的图片就知道了…

平方数之和(力扣)双指针 JAVA

给定一个非负整数 c &#xff0c;你要判断是否存在两个整数 a 和 b&#xff0c;使得 a&#xff3e;2 b&#xff3e;2 c 。 示例 1&#xff1a; 输入&#xff1a;c 5 输出&#xff1a;true 解释&#xff1a;1 * 1 2 * 2 5 示例 2&#xff1a; 输入&#xff1a;c 3 输出&am…

Linux系统调试——核心转储(core dump)

本篇讲解Linux应用程序发生Segmentation fault段错误时&#xff0c;如何利用core dump文件定位错误。 核心转储 在 Linux 系统中&#xff0c;常将“主内存”称为核心(core)&#xff0c;而核心映像(core image) 就是 “进程”(process)执行当时的内存内容。 当进程发生错误或…

计算机竞赛 图像识别-人脸识别与疲劳检测 - python opencv

文章目录 0 前言1 课题背景2 Dlib人脸识别2.1 简介2.2 Dlib优点2.3 相关代码2.4 人脸数据库2.5 人脸录入加识别效果 3 疲劳检测算法3.1 眼睛检测算法3.3 点头检测算法 4 PyQt54.1 简介4.2相关界面代码 5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是…

LVS-DR模型实例

一、LVS-DR集群介绍 LVS-DR&#xff08;Linux Virtual Server Director Server&#xff09;工作模式&#xff0c;是生产环境中最常用的一 种工作模式。 1、LVS-DR 工作原理 LVS-DR 模式&#xff0c;Director Server 作为群集的访问入口&#xff0c;不作为网关使用&#xff0…

借助Midjourney创作龙九子图

&#xff08;本文阅读时间&#xff1a;5 分钟&#xff09; 《西游记》中有这么一段描写&#xff1a; 龙王道&#xff1a;“舍妹有九个儿子。那八个都是好的。第一个小黄龙&#xff0c;见居淮渎&#xff1b;第二个小骊龙&#xff0c;见住济渎&#xff1b;第三个青背龙&#xff0…

Linux 消息队列的创建与使用

消息队列的创建与使用 进程a发送一条消息&#xff0c;进程b读取消息。 a.c代码&#xff1a; b.c代码&#xff1a; 1.a进程创建向消息队列&#xff0c;并向消息队列中发送消息 运行a程序之前&#xff0c;当前系统中消息队列的数量为0&#xff1a; 运行一次a程序&#xff0c;消…

JVM——StringTable面试案例+垃圾回收+性能调优+直接内存

JVM——引言JVM内存结构_北岭山脚鼠鼠的博客-CSDN博客 书接上回内存结构——方法区。 这里常量池是运行时常量池。 方法区 面试题 intern()方法 intern() 方法用于在运行时将字符串添加到内部的字符串池stringtable中&#xff0c;并返回字符串池stringtable中的引用。 返…

【rust/egui】(三)看看template的app.rs:序列化、持久化存储

说在前面 rust新手&#xff0c;egui没啥找到啥教程&#xff0c;这里自己记录下学习过程环境&#xff1a;windows11 22H2rust版本&#xff1a;rustc 1.71.1egui版本&#xff1a;0.22.0eframe版本&#xff1a;0.22.0上一篇&#xff1a;这里 serde app.rs中首先定义了我们的Templ…

2023.8.19-2023.8.XX 周报【人脸3D+虚拟服装方向基础调研-Cycle Diffusion\Diffusion-GAN\】更新中

学习目标 1. 这篇是做diffusion和gan结合的&#xff0c;可以参照一下看看能不能做cyclegan的形式&#xff0c;同时也可以调研一下有没有人follow这篇论文做了类似cyclegan的事情 Diffusion-GAN论文精读https://arxiv.org/abs/2206.02262 2. https://arxiv.org/abs/2212.06…

python——json、字典的区别及相互转换方法

前言 json&#xff0c;是一种轻量级的数据交换格式&#xff0c;由JavaScript语言创建&#xff0c;广泛应用于网页数据交互&#xff0c;常见于爬虫和数据分析领域。 json格式简洁、结构清晰&#xff0c;存储格式为&#xff1a;键值对&#xff08;key:value&#xff09; 在pytho…

创作的1024天 分享月入5K的副业心得

机缘 今天早上醒来打开电脑&#xff0c;和往常一样点开csdn&#xff0c;看见有一封私信&#xff0c;原来是系统通知&#xff0c;今天是我成为创作者的1024天&#xff0c;那就趁着这个机会&#xff0c;分享一下目前我月入5K的副业心得。我是一个普通人&#xff0c;最初想成为创…

【100天精通python】Day41:python网络爬虫开发_爬虫基础入门

目录 专栏导读 1网络爬虫概述 1.1 工作原理 1.2 应用场景 1.3 爬虫策略 1.4 爬虫的挑战 2 网络爬虫开发 2.1 通用的网络爬虫基本流程 2.2 网络爬虫的常用技术 2.3 网络爬虫常用的第三方库 3 简单爬虫示例 专栏导读 专栏订阅地址&#xff1a;https://blog.csdn.net/…

提高 Snowflake 工作效率的 6 大工具

推荐&#xff1a;使用 NSDT场景编辑器 助你快速搭建可二次编辑的3D应用场景 Snowflake 彻底改变了企业存储、处理和分析数据的方式&#xff0c;提供了无与伦比的灵活性、可扩展性和性能。但是&#xff0c;与任何强大的技术一样&#xff0c;要真正利用其潜力&#xff0c;必须拥有…