xlgs上机测试

注意:请在桌面新建一个文件夹,用自己的姓名命名,按照题目中的英文名保存源文件。

姓名\
    accmul.cpp
    goldbach.cpp
    summation.cpp
    ....

所有题目时间限制:1s,空间限制:512MB

累加累乘(accmul)

\(Hacker\) 带着曾经的累加和累乘回来了,你还记得它们吗?让我们来回忆一下吧!
累加:\(\sum\limits_{i=1}^{n}i=1+2+3+...+n\)
累乘:\(\prod\limits_{i=1}^{n}i=1*2*3*...*n\)
现在请你完成两个公式的编写,实现它们的功能。

输入格式: 输入一个正整数 \(n (1≤n≤10)\)
输出格式: 输出两行,每行一个整数,依次为 \(\sum\limits_{i=1}^{n}i\) 以及 \(\prod\limits_{i=1}^{n}i\) 的值。

输入样例输出样例
10
55
3628800

哥德巴赫猜想(goldbach)

\(Hacker\) 想要验证一下哥德巴赫猜想,即任意大于 \(2\) 的偶数都可写成两个质数之和。
如果一个数不止一种分法,则输出第一个加数相比其他分法最小的方案。
例如 \(10,10=3+7=5+5\),则 \(10=5+5\) 是错误答案。

输入格式: 一个数字 \(n (0 < n ≤ 10000)\)
输出格式: 若干行,每行一个算式表示一个偶数的分解。

输入样例输出样例
10
4=2+2
6=3+3
8=3+5
10=3+7

高位求和(summation)

\(Hacker\) 刚了解到竖式,他想用竖式来解决 A + B Problem 。但他好像不太聪明,在列竖式时总是把数字按最高位对齐。例如,在他计算 \(1919 + 810\) 时,他会把 \(1919\) 最高位的 \(1\)\(810\) 最高位的 \(8\) 对齐,导致他得到如下的竖式:

  1919
+ 810
-------
 10019

这使得他频频得到 Wrong Answer,而出题人不忍心他继续 WA 下去,决定偷偷把标准答案换成他输出的答案。
于是问题就产生了:给定了 A 与 B ,如果按照这样的计算方法,应该得到什么结果?

输入格式: 输入一行两个正整数 \(A,B(1≤A,B≤10^8)\)
输出格式: 输出一行一个整数,表示按高位对齐的计算方法得到的答案。

输入样例输出样例
1919 810
10019

二叉树的遍历(tree)

给出一个\(n\)个结点的二叉树,请求出二叉树的前序遍历,中序遍历和后序遍历。

输入格式: 第一行有一个整数 \(n (0<n<=26)\),表示二叉树有\(n\)个结点;之后 \(n\) 行,每行第一个为一个大写字母表示节点,后面为两整数,第分别表示左右儿子序号,如果该序号为0表示没有;输入顺序即为该节点编号
输出格式: 共三行,第一行为二叉树的前序遍历,第二行为中序遍历,第三行为后序遍历

输入样例输出样例
7
F 2 3
C 4 5
E 0 6
A 0 0
D 7 0
G 0 0
B 0 0
FCADBEG
ACBDFEG
ABDCGEF

路经数量(number)

给定一个由 \(01\) 组成的 \(n×m (2 ≤ n,m ≤ 1000)\) 矩阵,\(1\) 表示该点可以通过,\(0\) 表示该点不能通过。
求从左上角点到右下角点总共存在多少条路径,每次只能向右走或者向下走。
如果起点或终点为 \(0\),则方案数为 \(0\)。最终方案数可能很大,需要对 \(10^9+7\) 取模。

输入格式: 第一行两个整数,分别对应矩阵的行数 \(n\) 和列数 \(m\);接下来 \(n\) 行,每行 \(m\) 个数。

输出格式: 输出一个整数,表示从左上角点到右下角点总共存在多少条路径。

输入样例输出样例
3 4
1 0 1 1
1 1 1 1
1 1 1 1
4
posted @ 2023-05-09 14:45  HelloHeBin  阅读(90)  评论(0)    收藏  举报