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

news/2024/11/28 15:23:30/

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

  • 目录
    • MT1201 强数
    • MT1202 克里希那穆提数
    • MT1203 字母矩阵
    • MT1204 字母三角
    • MT1205 倒三角
    • MT1206 金字塔
    • MT1207 倒金字塔
    • MT1208 菱形
    • MT1209 沙漏
    • MT1210 弗洛伊德三角
    • MT1211 给定数字的乘法表
    • MT1212 乘法表
    • MT1213 x个a
    • MT1214 上三角矩阵
    • MT1215 下三角矩阵
    • MT1216 数组加法
    • MT1217 矩阵乘法
    • MT1218 斐波那契数列
    • MT1219斐波那契数列II
    • MT1220斐波那契数列III

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


目录

MT1201 强数

(1)题目
强数是各位数字的阶乘和等于原始数的数,输入一个数字N,检查它是否为强数。是则输出YES,否则输出NO。比如145,1!+4!+5!=145


格式

输入格式:
输入为整型输出格式:
输出为YES或者NO

样例1

输入:
145输出:
YES

(2)参考代码

#include<stdio.h>
int main() 
{ int N, i, num;scanf("%d", &N);int temp = N, sum = 0;while (temp){num = 1;for (i=1;i<=temp%10;i++){num *= i;}sum += num;temp /= 10;}if (sum == N){printf("YES");}else{printf("NO");}return 0; 
}

MT1202 克里希那穆提数

(1)题目
克里希那穆提数是一个数字的阶乘和等于该数本身的数。整数区间,输出区间(含边界)内所有的克里希那穆提数。不考虑0,负数或者其他特殊情况。


格式

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

样例1

输入格式: 
1 50000输出格式: 
1 2 145 40585

(2)参考代码

#include<stdio.h>
int main() 
{ int a, b, temp, num, sum;scanf("%d %d", &a, &b);for (int i=a;i<=b;i++){temp = i;sum = 0;while (temp){num = 1;if (temp % 10){for (int j=1;j<=temp%10;j++){num *= j;}}temp /= 10;sum += num;}if (sum == i && sum != 0){printf("%d ", i);}}return 0; 
}

MT1203 字母矩阵

(1)题目
请编写一个简单程序,输入正整数n,输出n*n的F字矩阵


格式

输入格式:
输入整型输出格式:
输出n*n的F字矩阵,空格分隔 

样例1

输入:
5输出:
F F F F F  
F F F F F  
F F F F F  
F F F F F  
F F F F F  

(2)参考代码

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

MT1204 字母三角

(1)题目
请编写一个简单程序,输入正整数n,输出n行F字三角


格式

输入格式:
输入整型 输出格式:
输出n行F字三角

样例1

输入:
5输出:
F  
FFF  
FFFFF  
FFFFFFF  
FFFFFFFFF

(2)参考代码

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

MT1205 倒三角

(1)题目
请编写一个简单程序,输入正整数n,输出n行F字倒三角


格式

输入格式: 
输入整型输出格式: 
输出n行F字倒三角

样例1

输入格式:5输出格式:
FFFFF
FFFF
FFF
FF
F

(2)参考代码

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

MT1206 金字塔

(1)题目
请编写一个简单程序,输入正整数n,输出n行W字金字塔


格式

输入格式:
输入整型输出格式:
输出n行W字金字塔

样例1

输入:
3输出:W  WWW  
WWWWW 

(2)参考代码

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

MT1207 倒金字塔

(1)题目
请编写一个简单程序,输入正整数n,输出n行W字金字塔。(第一行左边不空格)


格式

输入格式:
输入整型输出格式:
输出n行W字倒金字塔

样例1

输入:
5输出:
W W W W W  W W W W  W W W  W W  W

(2)参考代码

#include<stdio.h>
int main() 
{int i, n, x, y;scanf("%d", &n);for (i=1;i<=n;i++){x = i;while (x-1){printf(" ");x--;}for (y=1;y<=n+1-i;y++){printf("W ");}printf("\n");} 
}

MT1208 菱形

(1)题目
请编写一个简单程序,输入正整数n,输出n行W字菱形。


格式

输入格式:
输入整型输出格式:
输出W字菱形

样例1

输入:
5输出:W  W W  W W W  W W W W  
W W W W W  W W W W  W W W  W WW

(2)参考代码

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

MT1209 沙漏

(1)题目
请编写一个简单程序,输入正整数n,输出W字沙漏。(第一行左边不空格)


格式

输入格式: 
输入整型输出格式: 
输出W字沙漏

样例1

输入格式: 
5输出格式:

在这里插入图片描述

(2)参考代码

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

MT1210 弗洛伊德三角

(1)题目
输入正整数N。输出N行的弗洛伊德三角形


格式

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

样例1

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

(2)参考代码

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

MT1211 给定数字的乘法表

(1)题目
输出给定数字N的乘法表。


格式

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

样例1

输入:
9输出:
9 18 27 36 45 54 63 72 81

(2)参考代码

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

MT1212 乘法表

(1)题目
请编写一个简单程序,输出九九乘法表。输入n,就输出乘法表到n的地方。


格式

输入格式:
输入整型输出格式:
输出整型。形式如:1*1=1

样例1

输入:
5输出:
1*1=1  
2*1=2  2*2=4
3*1=3  3*2=6  3*3=9
4*1=4  4*2=8  4*3=12 4*4=16
5*1=5  5*2=10 5*3=15 5*4=20 5*5=25  

备注

乘式之间一个空格。乘法结果占两格,不足两位的左对齐。

(2)参考代码

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

MT1213 x个a

(1)题目
求a+aa+aaa+…+a…a(x个a),x和a由键盘输入。


格式

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

样例1

输入:
3 1输出:
123

(2)参考代码

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

MT1214 上三角矩阵

(1)题目
输入3X3的整型矩阵A,输出对应的上三角矩阵。


格式

输入格式:
输入矩阵,元素在0到9之间,空格分隔。输出格式:
输出矩阵,空格分隔。

样例1

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

(2)参考代码

#include<stdio.h>
#define N 9
#define X 3
#define Y 3
int main() 
{int a[N], i, j, count;for (i=0;i<N;i++){scanf("%d", &a[i]);}count = 0;for (i=0;i<X;i++){for (j=0;j<Y;j++){if (count == 3 || count == 6 || count == 7){printf("0 ");}else{printf("%d ", a[count]);}count++;}printf("\n");}return 0; 
}

MT1215 下三角矩阵

(1)题目
输入3X3的整型矩阵A,输出对应的下三角矩阵。


格式

输入格式:
输入矩阵,元素在0到9之间,空格分隔。输出格式:
输出矩阵,空格分隔。

样例1

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

(2)参考代码

#include<stdio.h>
#define N 9
#define X 3
#define Y 3
int main() 
{int a[N], i, j, count;for (i=0;i<N;i++){scanf("%d", &a[i]);}count = 0;for (i=0;i<X;i++){for (j=0;j<Y;j++){if (count == 1 || count == 2 || count == 5){printf("0 ");}else{printf("%d ", a[count]);}count++;}printf("\n");}return 0; 
}

MT1216 数组加法

(1)题目
有两个数组A和B,他们都有N个整型元素,编写一个函数,实现他们的“加法”把对应元素相加,结果放在C数组的对应位置,输出C数组。


格式

输入格式:
第一行输入数组长度N,后两行分别输入A,B数组的元素,整型,空格分隔。输出格式:
输出整型,空格分隔。

样例1

输入:
5  
1 2 3 4 5  
5 4 3 2 1输出:
6 6 6 6 6 

(2)参考代码

#include<stdio.h>
int main()
{int N, i;scanf("%d", &N);int A[N], B[N], C[N];for (i = 0; i < N; i++){scanf("%d", &A[i]);}for (i = 0; i < N; i++){scanf("%d", &B[i]);}for (i = 0; i < N; i++){C[i] = A[i] + B[i];}for (i = 0; i < N; i++){printf("%d ", C[i]);}return 0;
}

MT1217 矩阵乘法

(1)题目
输入3X4整型矩阵A和4X3的整型矩阵B,计算A*B,放到矩阵C里面,输出矩阵C。


格式

输入格式:
分两行输入两个矩阵,空格分隔。输出格式:
按矩阵形式输出,整型,每个数字占3列,空格分隔。

样例1

输入:
3 0 0 7 0 0 0 -1 0 2 0 0    
4 1 0 0 1 -1 0 2 1 0 2 1 输出:12  17   70  -2  -10   2  -2

(2)参考代码

#include<stdio.h>
int main()
{int A[3][4], B[4][3], C[3][3];int i, j, k, num;for (i = 0; i < 3; i++){for (j = 0; j < 4; j++){scanf("%d", &A[i][j]);}}for (i = 0; i < 4; i++){for (j = 0; j < 3; j++){scanf("%d", &B[i][j]);}}for (k = 0; k < 3; k++){for (i = 0; i < 3; i++){num = 0;for (j = 0; j < 4; j++){num += A[k][j] * B[j][i];}C[k][i] = num;}}for (i = 0; i < 3; i++){for (j = 0; j < 3; j++){printf("%3d ", C[i][j]);}printf("\n");}return 0;
}

MT1218 斐波那契数列

(1)题目
请编写一个简单程序,求斐波那契数列前10个数


格式

输入格式: 
无输出格式: 
输出整型

样例1

输入格式:无输出格式: 
1 1 2 3 5 8 13 21 34 55

(2)参考代码

#include<stdio.h>
#define N 10
int main() 
{int a[N], i;a[0] = 1;for (i=0;i<N;i++){if (i-2 >= 0){a[i] = a[i-1] + a[i-2];}else if (i-1 >= 0){a[i] = a[i-1] + 0;}else{a[i] = a[i];}}for (i=0;i<N;i++){printf("%d ", a[i]);}return 0; 
}

MT1219斐波那契数列II

(1)题目
在这里插入图片描述


格式

输入格式:
输入整型输出格式:
输出YES或者NO

样例1

输入:
5输出:
YES

(2)参考代码

#include<stdio.h>
int main()
{int N, a = 0, b = 1, c = 2;scanf("%d", &N);if (N == 1 || N == 2 || N == 0){printf("YES");return 0;}while (c <= N){c = a + b;a = b;b = c;if (c == N){printf("YES");return 0;}}printf("NO");return 0;
}

MT1220斐波那契数列III

(1)题目
输入一个正整数N(N< 50),输出斐波那契数列前N项。


格式

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

样例1

输入:
5输出:
1 1 2 3 5

(2)参考代码

#include<stdio.h>
int main()
{int N;scanf("%d", &N);int a[N], i;a[0] = 1;for (i = 0; i < N; i++){if (i - 2 >= 0){a[i] = a[i - 1] + a[i - 2];}else if (i - 1 >= 0){a[i] = a[i - 1] + 0;}else{a[i] = a[i];}}for (i = 0; i < N; i++){printf("%d ", a[i]);}return 0;
}


http://www.ppmy.cn/news/1051609.html

相关文章

PCIE超高速实时运动控制卡在六面外观视觉检测上的应用

市场应用背景 XPCIE1028超高速实时运动控制卡在六面外观检测高速视觉筛选中的应用&#xff0c;结合正运动技术提供的专用筛选机调试软件&#xff0c;可实现15000pcs/分钟的IO触发检测速度&#xff0c;只需简单参数设置&#xff0c;搭配图像采集硬件和视觉处理软件&#xff0c;…

在idea使用GitHub账号、Copilot异常

登录GitHub显示这样的信息&#xff1a; Invalid authentication data.Connection refused: connect Failed to initiate the GitHub login process. Please try again. 修改hosts&#xff08;C:\Windows\System32\drivers\etc\hosts&#xff09;&#xff0c;添加以下参数即可…

网络安全—黑客—自学笔记

想自学网络安全&#xff08;黑客技术&#xff09;首先你得了解什么是网络安全&#xff01;什么是黑客&#xff01; 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全…

威班8月份PMP模拟考试实录(附大D老师考前寄语)

威班8月份模拟考试于2023年8月12日在深圳市福田区兴华大厦成功举办&#xff0c;这次考试依旧是通过线上线下同步的方式&#xff0c;在深圳周边的学员直接到达现场做卷考试&#xff0c;全国各地不能到达现场的其他学员已提前收到考试所需要的文件&#xff0c;与现场学员同时参加…

html动态爱心代码【一】(附源码)

前言 七夕马上就要到了&#xff0c;为了帮助大家高效表白&#xff0c;下面再给大家带来了实用的HTML浪漫表白代码(附源码)背景音乐&#xff0c;可用于520&#xff0c;情人节&#xff0c;生日&#xff0c;表白等场景&#xff0c;可直接使用。 效果演示 文案修改 var loverNam…

数据挖掘技术在智能外呼系统的应用探索

随着科技的不断发展&#xff0c;人们对于智能化的需求也日益增加&#xff0c;在企业获客领域&#xff0c;智能外呼系统应运而生。智能外呼系统是一种基于人工智能技术的客户服务系统&#xff0c;通过自动化的方式实现客户服务&#xff0c;提高客户满意度和企业效率。数据挖掘技…

时空智友企业流程化管控系统文件上传漏洞复现

0x01 产品简介 时空智友企业流程化管控系统是一个功能丰富、灵活可定制的企业管理工具。通过该系统&#xff0c;企业能够实现流程的自动化、协同的提升、数据的洞察和决策的优化&#xff0c;从而提高工作效率、管理水平和企业竞争力。 0x02 漏洞概述 时空智友企业流程化管控系…

Faster RCNN网络数据流总结

前言 在学习Faster RCNN时&#xff0c;看了许多别人写的博客。看了以后&#xff0c;对Faster RCNN整理有了一个大概的了解&#xff0c;但是对训练时网络内部的数据流还不是很清楚&#xff0c;所以在结合这个版本的faster rcnn代码情况下&#xff0c;对网络数据流进行总结。以便…