机试
Wizard go
这个作者很懒,什么都没留下…
展开
-
3389. N 的阶乘
输入一个正整数 N,输出 N 的阶乘。输入格式输入包含多组测试数据。每组数据占一行,包含一个整数 N。输出格式每组数据输出占一行,输出 N 的阶乘。数据范围1≤N≤1000,每个输入最多包含 100 组数据输入样例:4515输出样例:241201307674368000高精度乘法,N最大只有1000,先预处理阶乘#include<iostream>#include<vector>using namespace std;const int N=原创 2022-05-07 15:58:21 · 288 阅读 · 0 评论 -
3388. 求root(N, k)
N<k 时,root(N,k)=N,否则,root(N,k)=root(N′,k)。N′ 为 N 的 k 进制表示的各位数字之和。输入 x,y,k,输出 root(xy,k) 的值。输入格式输入包含多组测试数据。每组数据占一行,包含三个整数 x,y,k。输出格式每组数据输出一行,root(xy,k) 的值。数据范围每个输入最多包含 100 组测试数据。0<x,y<2×109,2≤k≤6,注意 xy 可能会溢出 int 范围。输入样例:4 4 10输出样例:原创 2022-05-07 14:08:59 · 437 阅读 · 0 评论 -
3384. 二叉树遍历
编写一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。例如如下的先序遍历字符串: abc##de#g##f### 其中 # 表示的是空格,空格字符代表空树。建立起此二叉树以后,再对二叉树进行中序遍历,输出遍历结果。输入格式共一行,包含一个字符串,表示先序遍历字符串。输出格式共一行,输出将输入字符串建立二叉树后中序遍历的序列,字符之间空格隔开。注意,输出中不用包含 #。数据范围输入字符串长度不超过 100,且只包含小写字母和 #。输入样例:abc#原创 2022-05-07 10:59:01 · 1115 阅读 · 0 评论 -
5.最小邮票
有若干张邮票,要求从中选取最少的邮票张数凑成一个给定的总值。如,有 1 分,3 分,3 分,3 分,4 分五张邮票,要求凑成 10 分,则使用 3 张邮票:3 分、3 分、4 分即可。输入格式第一行包含整数 M,表示需要凑成的邮票总值。第二行包含整数 N,表示给定邮票数量。第三行包含 N 个整数,表示每个邮票的面值,以升序排列。输出格式输出能够凑成总值 M 所需的最少邮票张数。若无解,则输出 0。数据范围1≤M≤100,1≤N≤20,每张邮票的面值范围 [1,100]。输入样例:原创 2022-04-28 10:48:39 · 173 阅读 · 0 评论 -
4.玛雅人的密码
玛雅人有一种密码,如果字符串中出现连续的 2012 四个数字就能解开密码。给定一个长度为 N 的字符串,该字符串中只含有 0,1,2 三种数字。可以对该字符串进行移位操作,每次操作可选取相邻的两个数字交换彼此位置。请问这个字符串要移位几次才能解开密码。例如 02120 经过一次移位,可以得到 20120,01220,02210,02102,其中 20120 符合要求,因此输出为 1。如果无论移位多少次都解不开密码,输出 −1。输入格式第一行包含一个整数 N,表示字符串的长度。第二行包含一个由原创 2022-04-28 09:44:01 · 142 阅读 · 0 评论 -
3.整数拆分
一个整数总可以拆分为 2 的幂的和。例如:7 可以拆分成7=1+2+4,7=1+2+2+2,7=1+1+1+4,7=1+1+1+2+2,7=1+1+1+1+1+2,7=1+1+1+1+1+1+1共计 6 种不同拆分方式。再比如:4 可以拆分成:4=4,4=1+1+1+1,4=2+2,4=1+1+2。用 f(n) 表示 n 的不同拆分的种数,例如 f(7)=6。要求编写程序,读入 n,输出 f(n)mod109。输入格式一个整数 n。输出格式一个整数,表示 f(n)mod109。数据范原创 2022-04-27 17:09:46 · 155 阅读 · 0 评论 -
2.手机键盘
请你计算按照手机键盘(9 键输入法)输入字母的方式,键入给定字符串(由小写字母构成)所花费的时间。具体键入规则和花费时间如下描述:对于同一键上的字符,例如 a,b,c 都在 “1” 键上,输入 a 只需要按一次,输入 c 需要连续按三次。如果连续两个字符不在同一个按键上,则可直接按,如:ad 需要按两下,kz 需要按 6 下。如果连续两字符在同一个按键上,则两个按键之间需要等一段时间,如 ac,在按了 a 之后,需要等一会儿才能按 c。现在假设每按一次需要花费一个时间段,等待时间需要花费两个时间原创 2022-04-27 16:09:56 · 219 阅读 · 0 评论 -
1.进制转换
将一个长度最多为 30 位数字的十进制非负整数转换为二进制数输出。输入格式输入包含多组测试数据。每组测试数据占一行,包含一个长度不超过 30 位的十进制非负整数。输出格式每组数据输出一个结果,占一行,为输入对应的二进制数。数据范围输入最多包含 100 组测试数据。输入样例:0138输出样例:01111000高精度除法+辗转相除#include<bits/stdc++.h>using namespace std;string a;vector<in原创 2022-04-27 10:42:38 · 53 阅读 · 0 评论