没有合适的资源?快使用搜索试试~ 我知道了~
团体程序设计天梯赛近三年L2,L3真题及代码解析
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 7 下载量 187 浏览量
2022-07-11
11:17:05
上传
评论 4
收藏 2.53MB PDF 举报
温馨提示
试读
135页
团体程序设计天梯赛是中国高校计算机大赛的竞赛版块之一,赛旨在提升学生计算机问题求解水平,增强学生程序设计能力,培养团队合作精神,提高大学生的综合素质,同时丰富校园学术气氛,促进校际交流,提高全国高校的程序设计教学水平。比赛重点考查参赛队伍的基础程序设计能力、数据结构与算法应用能力,并通过团体成绩体现高校在程序设计教学方面的整体水平。竞赛题目均为在线编程题,由搭建在网易服务器上的PAT在线裁判系统自动评判。难度分3个梯级:基础级、进阶级、登顶级。以个人独立竞技、团体计分的方式进行排名。
资源推荐
资源详情
资源评论
L1-001. Hello World [题]
这道超级简单的题没有任何输。
你只需要在中输出著名短“Hello World!”就可以。
L1-002. 打印沙 [图形打印]
本题要求你写个程序把给定的符号打印成沙的形状。如给定17个“*”,要求按下格式打印
*****
***
*
***
*****
所谓“沙形状”,是指每输出奇数个符号;各符号中对;相邻两符号数差2;符号数先从
到顺序递减到1,再从到顺序递增;尾符号数相等。
给定任意N个符号,定能正好组成个沙。要求打印出的沙能掉尽可能多的符号。
输格式:
输在给出1个正整数N(<=1000)和个符号,中间以空格分隔。
输出格式:
先打印出由给定符号组成的最的沙形状,最后在中输出剩下没掉的符号数。
输样:
19 *
输出样:
*****
***
*
***
*****
#include <iostream>
using namespace std;
int main() {
cout << "Hello World!";
return 0;
}
1
2
3
4
5
6
Mail: 1322115882@qq.com UUID: a926fd39-3001-3be2-b484-bf45f4e8908e 1
2
L1-003. 个位数统计 [字符处]
给定个k位整数N = dk-1*10k-1 + … + d1*101 + d0 (0<=di<=9, i=0,…,k-1, dk-1>0),请编写程序统
计每种同的个位数字出现的次数。如:给定N = 100311,则有2个0,3个1,和1个3。
输格式:
每个输包含1个测试,即个超过1000位的正整数N。
输出格式:
对N中每种同的个位数字,以D:M的格式在中输出该位数字D及其在N中出现的次数M。要求
按D的升序输出。
输样:
100311
输出样:
0:2
#include <iostream>
using namespace std;
int main() {
int N, row = 0;
char c;
cin >> N >> c;
for (int i = 0; i < N; i++) {
if ((2 * i * (i + 2) + 1) > N) {
row = i - 1;
break;
}
}
for (int i = row; i >= 1; i--) {
for (int k = row - i; k >= 1; k--) cout << " ";
for (int j = i * 2 + 1; j >= 1; j--) cout << c;
cout << endl;
}
for (int i = 0; i < row; i++) cout << " ";
cout << c << endl;
for (int i = 1; i <= row; i++) {
for (int k = row - i; k >= 1; k--) cout << " ";
for (int j = i * 2 + 1; j >= 1; j--) cout << c;
cout << endl;
}
cout << (N - (2 * row * (row + 2) + 1));
return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Mail: 1322115882@qq.com UUID: a926fd39-3001-3be2-b484-bf45f4e8908e 2
1:3
3:1
L1-004. 计算摄温度 [数学问题]
给定个华温度F,本题要求编写程序,计算对应的摄温度C。计算公式:C = 5*(F-32)/9。题保
证输与输出均在整型范围内。
输格式:
输在中给出个华温度。
输出格式:
在中按照格式“Celsius = C”输出对应的摄温度C的整数值。
输样:
150
输出样:
Celsius = 65
L1-005. 考试座位号 [查找元素]
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
cin >> s;
int len = s.length();
int a[10] = {0};
for (int i = 0; i < len; i++) a[s[i] - '0']++;
for (int i = 0; i < 10; i++) {
if (a[i] != 0) cout << i << ":" << a[i] << endl;
}
return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
using namespace std;
int main() {
int f;
cin >> f;
int c = 5 * (f - 32) / 9;
cout << "Celsius = " << c;
return 0;
}
1
2
3
4
5
6
7
8
9
Mail: 1322115882@qq.com UUID: a926fd39-3001-3be2-b484-bf45f4e8908e 3
每个PAT考在参加考试时都会被分配两个座位号,个是试机座位,个是考试座位。正常情况
下,考在场时先得到试机座位号码,座进试机状态后,系统会显示该考的考试座位号码,
考试时考需要换到考试座位就座。但有些考迟到,试机已经结束,他们只能拿着领到的试机座
位号码求助于你,从后台查出他们的考试座位号码。
输格式:
输第给出个正整数N(<=1000),随后N,每给出个考的信息:“准考证号 试机座位
号 考试座位号”。其中准考证号由14位数字组成,座位从1到N编号。输保证每个的准考证号都
同,并且任何时候都会把两个分配到同个座位上。
考信息之后,给出个正整数M(<=N),随后中给出M个待查询的试机座位号码,以空格分
隔。
输出格式:
对应每个需要查询的试机座位号码,在中输出对应考的准考证号和考试座位号码,中间1个空
格分隔。
输样:
4
10120150912233 2 4
10120150912119 4 1
10120150912126 1 3
10120150912002 3 2
2
3 4
输出样:
10120150912002 2
10120150912119 1
#include <iostream>
#include <vector>
using namespace std;
struct stu {
string s;
int one, two;
};
int main() {
int n, m, temp;
cin >> n;
vector<stu> a(n);
for (int i = 0; i < n; i++) {
cin >> a[i].s >> a[i].one >> a[i].two;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Mail: 1322115882@qq.com UUID: a926fd39-3001-3be2-b484-bf45f4e8908e 4
L1-006. 连续因 [逻辑题]
个正整数N的因中可能存在若连续的数字。如630可以分解为3*5*6*7,其中5、6、7就是3
个连续的数字。给定任正整数N,要求编写程序求出最连续因的个数,并输出最的连续因
序。
输格式:
输在中给出个正整数N(1<N<231)。
输出格式:
先在第1输出最连续因的个数;然后在第2中按“因1*因2*……*因k”的格式输出最
的连续因序,其中因按递增顺序输出,1算在内。
输样:
630
输出样:
3
5*6*7
分析:
[Update v2.0] 由github户littlesevenmo提供的效的解法:
算连续因最多会超过12个,也需要三重循环,两重循环即可,直接去计算当前部分乘积能
能整除N,代码如下:
cin >> m;
for (int i = 0; i < m; i++) {
cin >> temp;
for (int j = 0; j < n; j++) {
if (a[j].one == temp) {
cout << a[j].s << " " << a[j].two << endl;
break;
}
}
}
return 0;
}
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <cmath>
using namespace std;
long int num, temp;
int main(){
cin >> num;
int first = 0, len = 0, maxn = sqrt(num);
for (int i = 2; i <= maxn; i++){
int j; temp = 1;
1
2
3
4
5
6
7
8
9
Mail: 1322115882@qq.com UUID: a926fd39-3001-3be2-b484-bf45f4e8908e 5
剩余134页未读,继续阅读
勇敢nn
- 粉丝: 796
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页