|
|
|
|
@ -120,13 +120,11 @@
|
|
|
|
|
|
|
|
|
|
## (二)、
|
|
|
|
|
|
|
|
|
|
1. 解题分析:
|
|
|
|
|
|
|
|
|
|
1. 第一题(2)、(4)解题分析:
|
|
|
|
|
|
|
|
|
|
此题较为简单,调用 `math.h` 库即可
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```c
|
|
|
|
|
// 第二题和第四题
|
|
|
|
|
|
|
|
|
|
#include <math.h>
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
|
|
|
|
|
@ -146,9 +144,9 @@
|
|
|
|
|
printf("%lf\n", T3(x, y));
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
测试:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
输入:
|
|
|
|
|
1
|
|
|
|
|
@ -157,14 +155,12 @@
|
|
|
|
|
1.290994
|
|
|
|
|
20.453416
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
2. 解题分析:
|
|
|
|
|
|
|
|
|
|
2. 第二题解题分析:
|
|
|
|
|
|
|
|
|
|
此题较为简单,考虑读取的是字符,将字符逆向输出即可
|
|
|
|
|
|
|
|
|
|
```c
|
|
|
|
|
// 第二题
|
|
|
|
|
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
|
|
|
|
|
int main() {
|
|
|
|
|
@ -185,13 +181,11 @@
|
|
|
|
|
4, 3, 2, 1
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
3. 解题分析:
|
|
|
|
|
3. 第三题解题分析:
|
|
|
|
|
|
|
|
|
|
此题较为简单,调用 `math.h` 库即可
|
|
|
|
|
|
|
|
|
|
```c
|
|
|
|
|
// 第三题
|
|
|
|
|
|
|
|
|
|
#include <math.h>
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
|
|
|
|
|
@ -220,13 +214,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4. 解题分析:
|
|
|
|
|
4. 第五题(1)、(3)解题分析:
|
|
|
|
|
|
|
|
|
|
此题较为简单,可以使用 `for` 循环,这里使用递归进行求解
|
|
|
|
|
|
|
|
|
|
```c
|
|
|
|
|
// 第五题中的第一题和第二题
|
|
|
|
|
|
|
|
|
|
int T1(int i) {
|
|
|
|
|
return i == 1 ? i : i + T1(i - 1);
|
|
|
|
|
}
|
|
|
|
|
@ -252,15 +244,165 @@
|
|
|
|
|
|
|
|
|
|
程序如期运行,结果正确
|
|
|
|
|
|
|
|
|
|
5. 第六题解题分析:
|
|
|
|
|
|
|
|
|
|
比较简单的一道题
|
|
|
|
|
|
|
|
|
|
```c
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
|
|
|
|
|
#define MAGIC_NUMBER 21
|
|
|
|
|
|
|
|
|
|
void print_left(int i) {
|
|
|
|
|
for (int j = 1; j <= i; j += 2)
|
|
|
|
|
printf(" %d ", j);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void print_right(int i) {
|
|
|
|
|
for (int j = i - 2; j >= 1; j -= 2)
|
|
|
|
|
printf(" %d ", j);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void print_space(int i) {
|
|
|
|
|
for (int j = 1; j <= MAGIC_NUMBER - i - 1; j += 2) {
|
|
|
|
|
printf(" ");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int main() {
|
|
|
|
|
for (int i = 1; i <= MAGIC_NUMBER; i += 2) {
|
|
|
|
|
print_space(i);
|
|
|
|
|
print_left(i);
|
|
|
|
|
print_right(i);
|
|
|
|
|
printf("\n");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
测试
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
1
|
|
|
|
|
1 3 1
|
|
|
|
|
1 3 5 3 1
|
|
|
|
|
1 3 5 7 5 3 1
|
|
|
|
|
1 3 5 7 9 7 5 3 1
|
|
|
|
|
1 3 5 7 9 11 9 7 5 3 1
|
|
|
|
|
1 3 5 7 9 11 13 11 9 7 5 3 1
|
|
|
|
|
1 3 5 7 9 11 13 15 13 11 9 7 5 3 1
|
|
|
|
|
1 3 5 7 9 11 13 15 17 15 13 11 9 7 5 3 1
|
|
|
|
|
1 3 5 7 9 11 13 15 17 19 17 15 13 11 9 7 5 3 1
|
|
|
|
|
1 3 5 7 9 11 13 15 17 19 21 19 17 15 13 11 9 7 5 3 1
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
6. 第七题题目解析:
|
|
|
|
|
|
|
|
|
|
遍历即可
|
|
|
|
|
|
|
|
|
|
```c
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
|
|
|
|
|
int main() {
|
|
|
|
|
for (int i = 1; i <= 10; ++i)
|
|
|
|
|
for (int j = 1; j < i; ++j)
|
|
|
|
|
printf("<%d, %d>\n", i, j);
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
测试
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
<2, 1>
|
|
|
|
|
<3, 1>
|
|
|
|
|
<3, 2>
|
|
|
|
|
...
|
|
|
|
|
<10, 7>
|
|
|
|
|
<10, 8>
|
|
|
|
|
<10, 9>
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
7. 第八题题目解析:
|
|
|
|
|
|
|
|
|
|
暴力输出即可
|
|
|
|
|
|
|
|
|
|
```c
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
|
|
|
|
|
int main() {
|
|
|
|
|
for (int i = 2; i < 10; ++i)
|
|
|
|
|
for (int j = 1; j < i; ++j)
|
|
|
|
|
printf("%d\n", j * 10 + i);
|
|
|
|
|
for (int i = 3; i < 10; ++i)
|
|
|
|
|
for (int j = 2; j < i; ++j)
|
|
|
|
|
for (int k = 1; k < j; ++k)
|
|
|
|
|
printf("%d\n", k * 100 + j * 10 + i);
|
|
|
|
|
for (int i = 4; i < 10; ++i)
|
|
|
|
|
for (int j = 3; j < i; ++j)
|
|
|
|
|
for (int k = 2; k < j; ++k)
|
|
|
|
|
for (int l = 1; l < k; ++l)
|
|
|
|
|
printf("%04d\n", l * 1000 + k * 100 + j * 10 + i);
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
测试:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
12
|
|
|
|
|
13
|
|
|
|
|
23
|
|
|
|
|
...
|
|
|
|
|
4789
|
|
|
|
|
5789
|
|
|
|
|
6789
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
8. 第九题题目解析:
|
|
|
|
|
|
|
|
|
|
使用递归进行求解较为简单
|
|
|
|
|
|
|
|
|
|
```c
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
|
|
|
|
|
void find_fact(int n) {
|
|
|
|
|
int is_fact = 1;
|
|
|
|
|
for (int i = 2; i < n; ++i) {
|
|
|
|
|
if (n % i == 0) {
|
|
|
|
|
printf("%d*", i);
|
|
|
|
|
find_fact(n / i);
|
|
|
|
|
is_fact = 0;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (is_fact) {
|
|
|
|
|
printf("%d", n);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int main() {
|
|
|
|
|
int n;
|
|
|
|
|
scanf("%d", &n);
|
|
|
|
|
find_fact(n);
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
测试:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
输入:16
|
|
|
|
|
输出:2*2*2*2
|
|
|
|
|
输入:15
|
|
|
|
|
输出:3*5
|
|
|
|
|
输入:200
|
|
|
|
|
输出:2*2*2*5*5
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## (三)、
|
|
|
|
|
|
|
|
|
|
1. 解题分析:
|
|
|
|
|
1. 第二题解题分析:
|
|
|
|
|
|
|
|
|
|
只需反复求出后三位乘以 `12` 的结果即可
|
|
|
|
|
|
|
|
|
|
```c
|
|
|
|
|
// 第二题
|
|
|
|
|
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
|
|
|
|
|
int main() {
|
|
|
|
|
@ -271,6 +413,12 @@
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
测试:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
512
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
# 实验总结
|
|
|
|
|
|
|
|
|
|
在完成 `T10` 时,本地编译出现了错误;经排错发现为报告代码出现问题。将代码中 `int fun(int) `的声明修改为 `void fun(int)` 后编译通过。通过此测试了解到了 `C++` 语言中声明应与实现一致。
|
|
|
|
|
|