首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >算法竞赛入门【码蹄集新手村600题】(MT1060-1080)C语言

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

作者头像
YueXuan
发布2025-08-19 09:15:52
发布2025-08-19 09:15:52
2840
举报
算法竞赛入门【码蹄集新手村600题】(MT1060-1080)C语言

码蹄集网站地址:https://www.matiji.net/exam/ojquestionlist


目录

MT1061 圆锥体的体积

(1)题目 请编写一个简单程序,输入圆锥体的半径和高,输出圆锥体的体积。不考虑非法输入。


格式

代码语言:javascript
复制
输入格式:
输入实型,空格分隔。

输出格式:
输出实型

样例1

代码语言:javascript
复制
输入:
3 5

输出:
47.123889

(2)参考代码

代码语言:javascript
复制
#include<stdio.h>
#define PI 3.1415926
int main() 
{ 
    double r, h;
    scanf("%lf %lf", &r, &h);
    printf("%lf", 1.0/3.0 * h * (PI * r * r));
    return 0; 
}

MT1062 圆锥体表面积

(1)题目 请编写一个简单程序,输入圆锥体的半径和高,输出圆锥体表面积。不考虑非法输入。(PI= 3.1415926)


格式

代码语言:javascript
复制
输入格式: 
输入实型,空格分隔。

输出格式: 
输出实型

样例1

代码语言:javascript
复制
输入格式:
 3 5

输出格式: 
83.229759

(2)参考代码

代码语言:javascript
复制
#include<stdio.h>
#include<math.h>
#define PI 3.1415926
int main() 
{
    double r, h;
    scanf("%lf %lf", &r, &h);
    printf("%lf", PI*r*r+PI*r*sqrt(r*r+h*h));
    return 0; 
}

MT1063 立方体的体积

(1)题目 输入立方体边长,输出立方体的体积。不考虑非法输入。


格式

代码语言:javascript
复制
输入格式:
输入实型

输出格式:
输出实型

样例1

代码语言:javascript
复制
输入:
3 

输出:
27.000000

(2)参考代码

代码语言:javascript
复制
#include<stdio.h>
int main() 
{ 
    double x;
    scanf("%lf", &x);
    printf("%lf", x * x * x);
    return 0; 
}

MT1064 立方体的表面积

(1)题目 输入立方体边长,输出立方体的表面积。不考虑非法输入。


格式

代码语言:javascript
复制
输入格式:
输入实型

输出格式:
输出实型

样例1

代码语言:javascript
复制
输入:
3 

输出:
54.000000

(2)参考代码

代码语言:javascript
复制
#include<stdio.h>
int main() 
{ 
    double x;
    scanf("%lf", &x);
    printf("%lf", x * x * 6);
    return 0; 
}

MT1065 长方体的表面积

(1)题目 输入长方体边长宽高,输出长方体的表面积。不考虑非法输入。


格式

代码语言:javascript
复制
输入格式:
输入实型,空格分隔。

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

样例1

代码语言:javascript
复制
输入:
3 2 4

输出:
52.000000

(2)参考代码

代码语言:javascript
复制
#include<stdio.h>
int main() 
{ 
    double x, y, z;
    scanf("%lf %lf %lf", &x, &y, &z);
    printf("%.6lf", 2 * (x*y + y*z + z*x));
    return 0; 
}

MT1066 射线

(1)题目 在一条直线上点上N(N>=1)个点可以把这条直线分成多少条射线?N从键盘输入。不考虑负数,0或者其他特殊情况。


格式

代码语言:javascript
复制
输入格式:
输入为整型

输出格式:
输出为整型

样例1

代码语言:javascript
复制
输入:
3

输出:
6

(2)参考代码

代码语言:javascript
复制
#include<stdio.h>
int main() 
{ 
    int N;
    scanf("%d", &N);
    printf("%d", 2*N);
    return 0; 
}

MT1067 线段

(1)题目 有一条直线,线上有n个点(n>=2),请问这条直线会被分隔成多少个线段。n从键盘输入。不考虑负数,0或者其他特殊情况。


格式

代码语言:javascript
复制
输入格式:
输入为整型

输出格式:
输出为整型

样例1

代码语言:javascript
复制
输入:
3

输出:
3

(2)参考代码

代码语言:javascript
复制
#include<stdio.h>
int main() 
{ 
    int N, num = 0;
    scanf("%d", &N);
    for (int i=1;i<N;i++)
    {
        num += i;
    }
    printf("%d", num);
    return 0; 
}

MT1068 直线切平面

(1)题目 直线切平面,输入直线条数N,问最多把平面分成几块。比如一条直线可以把一个平面切割成2块。可以使用公式S= n * (n+1)/2 +1 。不考虑负数,0或者其他特殊情况。


格式

代码语言:javascript
复制
输入格式:
输入为整型

输出格式:
输出为整型

样例1

代码语言:javascript
复制
输入:
5

输出:
16

(2)参考代码

代码语言:javascript
复制
#include<stdio.h>
int main() 
{ 
    int N;
    scanf("%d", &N);
    printf("%d", N * (N + 1) / 2 + 1);
    return 0; 
}

MT1069 圆切平面

(1)题目 n个圆最多把平面分成几部分?输入圆的数量N,问最多把平面分成几块。比如一个圆以把一个平面切割成2块。 不考虑负数,0或者其他特殊情况。


格式

代码语言:javascript
复制
输入格式:
输入为整型

输出格式:
输出为整型

样例1

代码语言:javascript
复制
输入:
2

输出:
4

(2)参考代码

代码语言:javascript
复制
#include<stdio.h>
int main() 
{ 
    double N;
    scanf("%lf", &N);
    printf("%.0lf", N * N - N + 2);
    return 0; 
}

MT1070 随机数的游戏

(1)题目 小码哥在1到10之间随机选择了一个数字N,然后把所选数字加倍,之后加上一个偶数K,然后把所得的数字除以2,再把得的商与原始数字N相减,输出他们的差。不考虑负数,0或者其他特殊情况。比如输入N和K分别为8和2,那么8*2=16,16+2=18,18/2=9,9-8=1,那么应该输出1。


格式

代码语言:javascript
复制
输入格式: 
输入为整型数字N和K,空格分隔

输出格式: 
输出为整型

样例1

代码语言:javascript
复制
输入格式: 
3 10

输出格式: 
5

(2)参考代码

代码语言:javascript
复制
#include<stdio.h>
int main() 
{
    int N, K;
    scanf("%d %d", &N, &K);
    printf("%d", (2*N+K)/2-N);
    return 0; 
}

MT1071 计算表达式的值

(1)题目 请编写一个简单程序,计算45除以2再加上43.41592,然后减去36除以7的商,输出运算结果。


格式

代码语言:javascript
复制
输入格式:
无

输出格式:
输出实型

样例1

代码语言:javascript
复制
输入:
无

输出:
60.773063 

(2)参考代码

代码语言:javascript
复制
#include<stdio.h>
int main() 
{ 
    printf("%lf", 45.0/2.0+43.41592-36.0/7.0);
    return 0; 
}

MT1072 分数运算

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


格式

代码语言:javascript
复制
输入格式: 
输入整型,如样例所示。

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

样例1

代码语言:javascript
复制
输入格式: 
1/2 1/4

输出格式:
1/2 + 1/4=0.750000
1/2 - 1/4=0.250000
1/2 * 1/4=0.125000
1/2 / 1/4=2.000000

(2)参考代码

代码语言:javascript
复制
#include<stdio.h>
int main() 
{ 
    double x, y, a, b, z1, z2;
    scanf("%lf/%lf %lf/%lf", &x, &y, &a, &b);
    z1 = x / y;
    z2 = a / b;
    printf("%.0lf/%.0lf + %.0lf/%.0lf=%lf\n", x, y, a, b, z1+z2);
    printf("%.0lf/%.0lf - %.0lf/%.0lf=%lf\n", x, y, a, b, z1-z2);
    printf("%.0lf/%.0lf * %.0lf/%.0lf=%lf\n", x, y, a, b, z1*z2);
    printf("%.0lf/%.0lf / %.0lf/%.0lf=%lf\n", x, y, a, b, z1/z2);
    return 0; 
}

MT1073 时刻求和

(1)题目 输入正整数N和M,空格分隔。把他们看作在12小时制的时刻(小时)求和并输出,输出最小列宽为3列。


格式

代码语言:javascript
复制
输入格式:
输入正整数N和M,空格分隔。

输出格式:
输出整型

样例1

代码语言:javascript
复制
输入:
5 7

输出:
  0

(2)参考代码

代码语言:javascript
复制
#include<stdio.h>
int main() 
{ 
    int N, M;
    scanf("%d %d", &N, &M);
    if (N+M>=12)
    {
        printf("%3d", N+M-12);
    }
    else
    {
        printf("%3d", N+M);
    }
    return 0; 
}

MT1074 平方根和对数值

(1)题目 请编写一个简单程序,计算求给定数的平方根、2个对数值(ln,lg)。


格式

代码语言:javascript
复制
输入格式:
输入实型

输出格式:
输出平方根、对数值,空格分隔,保留两位小数

样例1

代码语言:javascript
复制
输入:
5

输出:
2.24 1.61 0.70

(2)参考代码

代码语言:javascript
复制
#include<stdio.h>
#include<math.h>
int main() 
{ 
    double x;
    scanf("%lf", &x);
    printf("%.2lf %.2lf %.2lf", sqrt(x), log(x), log10(x));
    return 0; 
}

MT1075 平方根X

(1)题目 输入正整数N, 求N的平方根X。如果N不是一个完美的平方,输出floor(X) 。不考虑不合理的输入等特殊情况。


格式

代码语言:javascript
复制
输入格式:
输入正整数N

输出格式:
输出整型

样例1

代码语言:javascript
复制
输入:
5

输出:
2

(2)参考代码

代码语言:javascript
复制
#include<stdio.h>
#include<math.h>
int main() 
{ 
    int N;
    scanf("%d", &N);
    int n = (double)sqrt(N);
    printf("%d\n", n);
    return 0; 
}

MT1076 三维空间两点

(1)题目 输入三维空间两点坐标(x,y,z),计算两点之间的距离并输出。


格式

代码语言:javascript
复制
输入格式:
输入实型坐标(x,y,z),空格分隔。每行以一个点。

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

样例1

代码语言:javascript
复制
输入:
-20 20 0  
20 -10 0

输出:
50.00

(2)参考代码

代码语言:javascript
复制
#include<stdio.h>
int main() 
{ 
    double x1, x2, y1, y2, z1, z2;
    scanf("%lf %lf %lf", &x1, &y1, &z1);
    scanf("%lf %lf %lf", &x2, &y2, &z2);
    printf("%.2lf\n", sqrt(pow(x2-x1, 2)+pow(y2-y1, 2)+pow(z2-z1, 2)));
    return 0; 
}

MT1077 幸运数

(1)题目 假定幸运数是只包含4或7的正整数,如7、47。判断一个正整数n是不是一个幸运数。是则输出YES,否则输出NO。不考虑负数,0或者其他特殊情况。不考虑溢出或者超出整型范围的情况。


格式

代码语言:javascript
复制
输入格式:
输入为整型

输出格式:
是幸运数则输出YES,否则输出NO

样例1

代码语言:javascript
复制
输入:
47

输出:
YES

(2)参考代码

代码语言:javascript
复制
#include<stdio.h>
int main() 
{ 
    int x, flag;
    scanf("%d", &x);
    while (x)
    {
        if (x % 10 == 4 || x % 10 == 7)
        {
            flag = 1;
            x /= 10;
        }
        else
        {
            flag = 0;
            break;
        }
    }
    if (flag == 1)
    {
        printf("YES");
    }
    else
    {
        printf("NO");
    }
    return 0; 
}

MT1078 整除幸运数

(1)题目 假定幸运数是只包含4或7的正整数,如7、47。判断一个正整数n是否能被一个幸运数整除。是则输出YES,否则输出NO。不考虑负数,0或者其他特殊情况。不考虑溢出或者超出整型范围的情况。


格式

代码语言:javascript
复制
输入格式: 
输入为整型

输出格式: 
能被一个幸运数整除则输出YES,否则输出NO

样例1

代码语言:javascript
复制
输入格式: 
47

输出格式: 
YES

(2)参考代码

代码语言:javascript
复制
#include<stdio.h>
int main() 
{ 
    int n, temp, flag;
    scanf("%d", &n);
    for (int i=1;i<=n;i++)
    {
        if (n % i == 0)
        {
            temp = i;
            flag = 1;
            while (temp)
            {
                if (temp % 10 != 4 && temp % 10 != 7)
                {
                    flag = 0;
                    break;
                }
                temp /= 10;
            }
        }
        if (flag == 1)
        {
            printf("YES");
            return 0;
        }
    }
    printf("NO");
    return 0; 
}

MT1079 floor函数

(1)题目 给定一个正整数n,求满足floor(n/x)=y的x和y (x和y是正整数)。比如输入5,则(x, y)的组合可以有:(1, 5), (2, 2), (3, 1), (4, 1), (5, 1)。不考虑负数,0或者其他特殊情况。


格式

代码语言:javascript
复制
输入格式:
输入为整型

输出格式:
输出为整型,空格分隔,每组一行。前一个数为x,后面一个为y。输出按照x从小到大的次序输出。

样例1

代码语言:javascript
复制
输入:
5

输出:
1 5  
2 2  
3 1  

(2)参考代码

代码语言:javascript
复制
#include<stdio.h>
int main() 
{ 
    int n, y = 0;
    scanf("%d", &n);
    for (int x=1;x<=n;x++)
    {
        y = n / x;
        printf("%d %d\n", x, y);
    }
    return 0; 
}

MT1080 乘积之和

(1)题目 给定一个正整数n,求满足floor(n/x)=y的x和y的乘积之和 (x和y是正整数)。比如输入5,则(x, y)的组合可以有:(1, 5), (2, 2), (3, 1), (4, 1), (5, 1),那么, 1 * 5 + 2 * 2 + 3 * 1 + 4 * 1 + 5 * 1 = 5 + 4 + 3 + 4 + 5 = 21。不考虑负数,0或者其他特殊情况。


格式

代码语言:javascript
复制
输入格式:
输入为整型

输出格式:
输出为整型

样例1

代码语言:javascript
复制
输入:
5

输出:
21

(2)参考代码

代码语言:javascript
复制
#include<stdio.h>
int main() 
{ 
    int n, y = 0, sum = 0;
    scanf("%d", &n);
    for (int x=1;x<=n;x++)
    {
        y = n / x;
        sum += x * y;
    }
    printf("%d\n", sum);
    return 0; 
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-08-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 算法竞赛入门【码蹄集新手村600题】(MT1060-1080)C语言
  • 目录
    • MT1061 圆锥体的体积
    • MT1062 圆锥体表面积
    • MT1063 立方体的体积
    • MT1064 立方体的表面积
    • MT1065 长方体的表面积
    • MT1066 射线
    • MT1067 线段
    • MT1068 直线切平面
    • MT1069 圆切平面
    • MT1070 随机数的游戏
    • MT1071 计算表达式的值
    • MT1072 分数运算
    • MT1073 时刻求和
    • MT1074 平方根和对数值
    • MT1075 平方根X
    • MT1076 三维空间两点
    • MT1077 幸运数
    • MT1078 整除幸运数
    • MT1079 floor函数
    • MT1080 乘积之和
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档