C语言期中复习
yoyo2005
·
·
个人记录
T1 求最大数
题目描述
给出 n 个正整数,求出这 n 个数的最大值。
输入格式
第一行一个数,表示 n。
第二行有 n 个数,相邻两个数之间以一个空格隔开。
输出格式
一行一个数,为这 n 个数的最大值。
输入输出样例 #1
输入 #1
5
4 2 3 10 5
输出 #1
10
说明/提示
1 \le n \le 10^5
数据保证这 n 个数都在 int 的存储范围内
T2 求幂值
题目描述
给出三个正整数 a,b,m,求a^b\ mod\ m\ (a^b 除 m 的余数)。
输入格式
一行三个数,分别为 a,b,m
输出格式
一行一个数,为a^b\ mod\ m
输入输出样例 #1
输入 #1
5 3 10
输出 #1
5
说明/提示
1 \le a,b \le 10^6
2 \le m \le 10^9
三年oi一场空,没开long long见祖宗。
拓展
---
# T3 求约数和
## 题目描述
给出一个正整数 $n$ ,求出 $n$ 的所有正约数的和。
## 输入格式
一行一个数,为 $n$。
## 输出格式
一行一个数,为 $n$ 的所有约数之和。
## 输入输出样例 #1
### 输入 #1
```
6
```
### 输出 #1
```
11
```
## 说明/提示
$1 \le n \le 10000
拓展
思考如何优化自己的代码让其在 1 \le n \le 10^{12}。
T4 字符菱形
题目描述
给出正整数 n,输出一个对角线长度为 2n-1 的由字符 '*' 构成的菱形。
输入格式
一行一个数,为 n。
输出格式
共有 2n-1 行,为题目要求的菱形,具体样式参考样例。
输入输出样例 #1
输入 #1
3
输出 #1
*
***
*****
***
*
说明/提示
2 \le n \le 20
T5 计数问题
题目描述
试计算在区间 1 到 n 的所有整数中,数字 x(0\le x\le9)共出现了多少次?例如,在 1 到 11 中,即在 1,2,3,4,5,6,7,8,9,10,11 中,数字 1 出现了 4 次。
输入格式
## 输出格式
$1$ 个整数,表示 $x$ 出现的次数。
## 输入输出样例 #1
### 输入 #1
```
11 1
```
### 输出 #1
```
4
```
## 说明/提示
$1\le n\le 10^6$,$0\le x \le 9$。
---
# T6 圆上的整点
## 题目描述
求一个给定的圆$(x^2+y^2=r^2)$,在圆周上有多少个点的坐标是整数。
## 输入格式
r
## 输出格式
整点个数
## 输入输出样例 #1
### 输入 #1
```
4
```
### 输出 #1
```
4
```
## 说明/提示
$r\leq 100
拓展
本道题的原题的数据范围是 r\leq 2000000000,有兴趣的可以思考一下怎么做。
T7 周长与面积计算
题目描述
有 n 个正方形,第 1 个正方形的边长为 1,第 2 个正方形的边长为 2,以此类推,第 n 个正方形的边长为 n。它们被紧密地排列成一行。求这个图案的周长和面积分别是多少。
例如当 n=5 时的图案如下图所示。红色的边框代表整个图案的周长,绿色区域代表整个图案的面积:
输入格式
输入一个正整数 n。
输出格式
输出两行。
第一行一个正整数代表图案的周长;
第二行一个正整数代表图案的面积;
输入输出样例 #1
输入 #1
5
输出 #1
40
55
输入输出样例 #2
输入 #2
9
输出 #2
108
285
说明/提示
1 \leq n \leq 1000
拓展
大家应该都能想到本题可以不用循环结构,直接推公式解决。
可以尝试一下如何解决 1 \le n \le 10^{15} 时的情况。
为防止答案过大,请输出计算结果除 998244353 的余数。
T8 面积
题目描述
Alice 有一个边长为 a 的正方形,Bob 有一个长宽分别为 b,c 的矩形,请你告诉他们俩谁的图形面积更大。
输入格式
仅一行三个正整数 a,b,c
输出格式
输出仅一行一个字符串,若正方形面积大则输出 Alice,否则输出 Bob。
输入输出样例 #1
输入 #1
5 4 6
输出 #1
Alice
输入输出样例 #2
输入 #2
7 5 10
输出 #2
Bob
说明/提示
【数据范围】
【样例 $1$ 解释】
正方形面积为 $25$,矩形面积为 $24$。
【样例 $2$ 解释】
正方形面积为 $49$,矩形面积为 $50$。
---
# T9 休息时间
## 题目描述
cys计划在某个时刻开始学习,并决定在学习 $k$ 秒后开始休息。
cys想知道自己开始休息的时刻是多少。
## 输入格式
前三行每行包含一个整数,分别表示cys开始学习时刻的时 $h$、分 $m$、秒 $s$($h,m, s$ 的值符合
$1 < h \le 12,0 \le m\le 59,0 \le s\le59$)。
第四行包含一个整数 $k$,表示cys学习的总秒数(注:$k$ 的值符合 $1 \le k \le 3600$)。
## 输出格式
输出一行,包含三个整数,分别表示cys开始休息时刻的时、分、秒。
## 输入输出样例 #1
### 输入 #1
```
12
59
59
10
```
### 输出 #1
```
13 0 9
```
## 说明/提示
cys在时刻 12:59:59 开始学习,学习 10 秒后开始休息,即在 13:0:9 时刻开始休息。
$1 < h \le 12$,$0 \le m\le 59$,$0 \le s\le 59$,$1 \le k \le 3600$。
---
# T10 星云
## 题目描述
定义星云数为位数不大于 $n$ 且各数位之和不超过 $k$ 的正整数,给定 $n,k$,求星云数的个数。
## 输入格式
第一行输入两个整数 $n,k$。
## 输出格式
输出一行一个整数,表示答案。
## 输入输出样例 #1
### 输入 #1
```
3 2
```
### 输出 #1
```
9
```
## 说明/提示
### 数据规模与约定
$1 \leq n \leq 7$,$1 \leq k \leq 100$。
---
# T11 质数个数
## 题目描述
求 $1$ 到 $n$ 之间所有自然数中质数的个数。
## 输入格式
一行一个数,$n
输出格式
一行一个数,为质数的个数。
输入输出样例 #1
输入 #1
10
输出 #1
4
说明/提示
1 \le n \le 10000
## 拓展
考虑 $1 \le n \le 10^7$,此时我们无法用依次判断每一个数是否是质数的方式来解决这个问题,那该怎么办?
---
# T12 斐波那契数列
## 题目描述
大家都知道,斐波那契数列是满足如下性质的一个数列:
$F_1=1$,$F_2=1$,$F_n=F_{n-1}+F_{n-2}(n \ge 3)
请你求出 F_n 除 998244353 的余数。
输入格式
一行一个正整数 n
输出格式
输出一行一个整数表示答案。
输入输出样例 #1
输入 #1
5
输出 #1
5
输入输出样例 #2
输入 #2
10
输出 #2
55
说明/提示
1 \le n \le 10000
拓展
参考《代数学基础》上册 P21 第7题,试图解决 1 \le n \le 10^{15} 时的该问题。
T13 最大公约数
题目描述
给出两个正整数 a,b,求出 a 和 b 的最大公约数
输入格式
一行两个数,为 a 和 b。
输出格式
一行一个数,表示 a 和 b 的最大公约数
输入输出样例 #1
输入 #1
30 12
输出 #1
6
说明/提示
1 \le a,b \le 10^9