本文主要是介绍2023团体程序设计天梯赛——模拟赛和总决赛题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
M-L1-1 嫑废话上代码
Linux 之父 Linus Torvalds 的名言是:“Talk is cheap. Show me the code.”(嫑废话,上代码)。本题就请你直接在屏幕上输出这句话。
输入格式:
本题没有输入。
输出格式:
在一行中输出
Talk is cheap. Show me the code.
。输入样例:
无
输出样例:
Talk is cheap. Show me the code.
#include <stdio.h>int main() {printf("Talk is cheap. Show me the code.\n");return 0; }
M-L1-2 九牛一毛
这是一道脑筋急转弯题:猪肉一斤 15 元,鸡肉一斤 20 元,那么一毛钱能买多少头牛?
答案是:9 —— 因为“九牛一毛”。
本题就请你按照这个逻辑,计算一下 N 块钱能买多少斤猪肉、多少斤鸡肉、多少头牛。
输入格式:
输入在一行中给出一个不超过 1000 的正整数 N,即以“元”为单位的货币量。
输出格式:
在一行中顺序输出 N 块钱能买多少斤猪肉、多少斤鸡肉、多少头牛。三个数字都只取整数部分,其间以 1 个空格分隔,行首尾不得有多余空格。
输入样例:
18
输出样例:
1 0 1620
#include <stdio.h> int main(){int n ;scanf("%d",&n);int num_cows = n / 0.1 * 9;// 计算能买多少斤猪肉和鸡肉int num_pork =n / 15;int num_chicken = n / 20;// 输出结果printf("%d %d %d\n", num_pork, num_chicken, num_cows);return 0; }
M-L1-3 小孩子才做选择,大人全都要
阿汪面前有两只盲盒,每只盒子打开都有两种可能:或者装了 X 克狗粮,或者是一只容量为 Y 克的狗粮储蓄盒。如果是狗粮,阿汪可以快乐地吃掉;如果是空储蓄盒,那就倒霉了,阿汪必须想办法找到狗粮把这只储蓄盒装满,自己还吃不到。
正当阿汪发愁不知道该怎么选的时候,铲屎官大手一挥:“小孩子才做选择,大人全都要!”但全都要的结果,却不一定是赚了还是亏了……
我们假设聪明的阿汪总是能嗅出狗粮最多的盒子,并且绝不会选任何储蓄盒。而铲屎官没有这样的鼻子,他一定是全都要。铲屎官如果打开了有储蓄盒的盒子,就必须想办法把储蓄盒装满,他会优先用另一只盒子里的狗粮装(如果另外一只盒子里有狗粮),不够了还得自己去买新的狗粮,这样阿汪可就亏啦,什么都吃不到了。本题就请你判断阿汪到底是赚了还是亏了。
输入格式:
输入在一行中给出两个整数,绝对值都不超过 100,中间用一个空格分开,分别代表两只盒子里的东西。如果是正数就表示是狗粮的份量,如果是负数就表示绝对值是空盆的容量。两个数都肯定不是 0,因为保证没有空盒子。
输出格式:
第一行输出两个结果:如果让阿汪选能吃到的狗粮 A,和如果铲屎官全都要能吃到的狗粮 B。两个数字间用一个空格分开。如果铲屎官的决定让阿汪赚到了,就在第二行输出一个笑脸
^_^
,否则输出一个哭脸T_T
。但如果反正什么都吃不到(两个盒子里都没有狗粮),就输出一张躺平脸-_-
。输入样例 1:
12 18
输出样例 1:
18 30 ^_^
输入样例 2:
12 -18
输出样例 2:
12 0 T_T
/*#include <stdio.h> #include <math.h> int main() {int x, y;scanf("%d%d", &x, &y);// 如果两个数的乘积小于0,说明一个是狗粮,一个是空盆if (x * y < 0) {// 选择狗粮最多的盒子int a = (x > y) ? x : y;// 如果有空盆,铲屎官全都要的狗粮就是狗粮多的盒子减去空盆的绝对值int b = (abs(x) > abs(y)) ? abs(x - abs(y)) : 0;printf("%d %d\n", a, b);printf("T_T"); // 输出哭脸} // 如果两个数的乘积大于0,说明两个盒子都是狗粮或者都是空盆else if (x * y > 0) {// 选择狗粮最多的盒子int a = (x > y) ? x : y;// 如果两个盒子都是狗粮,铲屎官全都要的狗粮就是两个盒子狗粮的总和// 如果两个盒子都是空盆,铲屎官全都要的狗粮就是0int b = x + y;printf("%d %d\n", a, b);printf("^_^"); // 输出笑脸} // 如果两个数的乘积等于0,说明两个盒子一个是狗粮一个是空盆else {printf("-_-"); // 输出躺平脸}return 0; }*/ #include <stdio.h>int main() {int n, m;scanf("%d %d", &n, &m); // 从标准输入读取两个整数if (n > 0 && m > 0) { // 如果两个数都大于0int max = (n > m) ? n : m; // 选择较大的数printf("%d %d\n", max, (n + m)); // 输出结果printf("^_^"); // 输出笑脸} else if (n > 0 && m < 0) { // 如果一个大于0一个小于0m = -m; // 将负数变为正数if (n < m) {printf("%d 0\n", n); // 输出结果printf("T_T"); // 输出哭脸} else {printf("%d %d\n", n, (n - m)); // 输出结果printf("T_T"); // 输出哭脸}} else if (n < 0 && m > 0) { // 如果一个小于0一个大于0n = -n; // 将负数变为正数if (m < n) {printf("%d 0\n", m); // 输出结果printf("T_T"); // 输出哭脸} else {printf("%d %d\n", m, (m - n)); // 输出结果printf("T_T"); // 输出哭脸}} else { // 如果两个数都小于0printf("0 0\n"); // 输出结果printf("-_-"); // 输出躺平脸}return 0; }
M-L1-4 拯救外星人
你的外星人朋友不认得地球上的加减乘除符号,但是会算阶乘 —— 正整数 N 的阶乘记为 “N!”,是从 1 到 N 的连乘积。所以当他不知道“5+7”等于多少时,如果你告诉他等于“12!”,他就写出了“479001600”这个答案。
本题就请你写程序模仿外星人的行为。
输入格式:
输入在一行中给出两个正整数 A 和 B。
输出格式:
在一行中输出 (A+B) 的阶乘。题目保证 (A+B) 的值小于 12。
输入样例:
3 6
输出样例:
362880
#include <stdio.h> int main(){int x , y ;scanf("%d %d",&x,&y); // 从标准输入读取两个整数,去掉多余的换行符\nint ret = 1 ; // 将ret初始化为1int sum = x + y;for(int i = 1; i <= sum; ++i ){ // 更改循环变量名为i,并修改循环逻辑ret *= i; // 计算阶乘}printf("%d\n",ret);return 0; }
M-L1-5 试试手气
我们知道一个骰子有 6 个面,分别刻了 1 到 6 个点。下面给你 6 个骰子的初始状态,即它们朝上一面的点数,让你一把抓起摇出另一套结果。假设你摇骰子的手段特别精妙,每次摇出的结果都满足以下两个条件:
- 1、每个骰子摇出的点数都跟它之前任何一次出现的点数不同;
- 2、在满足条件 1 的前提下,每次都能让每个骰子得到可能得到的最大点数。
那么你应该可以预知自己第 n 次(1≤n≤5)摇出的结果。
输入格式:
输入第一行给出 6 个骰子的初始点数,即 [1,6] 之间的整数,数字间以空格分隔;第二行给出摇的次数 n(1≤n≤5)。
输出格式:
在一行中顺序列出第 n 次摇出的每个骰子的点数。数字间必须以 1 个空格分隔,行首位不得有多余空格。
输入样例:
3 6 5 4 1 4 3
输出样例:
4 3 3 3 4 3
样例解释:
这 3 次摇出的结果依次为:
6 5 6 6 6 6 5 4 4 5 5 5 4 3 3 3 4 3
#include <stdio.h> int main () {int arr[6]={0};int n;for(int i = 0;i<6 ; ++i)scanf("%d",&arr[i]);scanf("%d",&n);int ret = 0;for( int i = 0 ;i<6;++i){if((7-n)>arr[i]){if(ret)printf(" ");ret = 1;printf("%d",7-n);}else{if(ret)printf(" ");ret = 1;printf("%d",7-n-1);}}return 0; }
M-L1-6 打PTA
传说这是集美大学的学生对话。本题要求你做一个简单的自动问答机,对任何一个问句,只要其中包含
PTA
就回答Yes!
,其他一概回答No.
。输入格式:
输入第一行给出一个整型范围内的正整数 N,随后 N 行,每行给出一个长度不超过 80 的字符串,为用户输入的句子,由英文字母、数字、空格和标点符号组成,以回车结束。
输出格式:
对每一行句子,如果其结尾字符为问号
?
则判断此句中有无PTA
?如果有则在一行中输出Yes!
,否则输出No.
。如果不是问号结尾,则敷衍地回答enen
。输入样例:
5 Hello! Do you still play WZRY? Chi Ji? you play PTA ah? how about pta site?
输出样例:
enen No. No. Yes! No.
#include<stdio.h> #include<string.h>char arr[100];char p[5]="PTA"; int main (){int n ,lent;scanf("%d",&n);getchar();while(n--){gets(arr);lent = strlen(arr);if(arr[lent-1]!='?'){printf("enen\n");continue;}if(strstr(arr,p)!=NULL){printf("Yes!\n");continue;}else{printf("No.\n");}} }
这篇关于2023团体程序设计天梯赛——模拟赛和总决赛题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!