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; // 如果两个盒子都是狗粮,铲屎官全都要的狗粮就是两个盒子狗粮的总和 // 如果两个盒子都是空盆,铲屎官全都要的狗粮就是0 int 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) { // 如果两个数都大于0 int max = (n > m) ? n : m; // 选择较大的数 printf("%d %d\n", max, (n + m)); // 输出结果 printf("^_^"); // 输出笑脸 } else if (n > 0 && m < 0) { // 如果一个大于0一个小于0 m = -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一个大于0 n = -n; // 将负数变为正数 if (m < n) { printf("%d 0\n", m); // 输出结果 printf("T_T"); // 输出哭脸 } else { printf("%d %d\n", m, (m - n)); // 输出结果 printf("T_T"); // 输出哭脸 } } else { // 如果两个数都小于0 printf("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); // 从标准输入读取两个整数,去掉多余的换行符\n int ret = 1 ; // 将ret初始化为1 int 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"); } } }
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!