机试完几天了,两个月的准备就是为了这三小时的三道题,趁着没忘记,把题目贡献出来,也算是继承学长的光荣传统,泽被后人吧!
1.大数乘法
先输入一个数字m,表示后面将输入m个数,接着输入m个0到9的数,以空格隔开(至少有一个不为0),这些数可构成一个十进制数a, a的三次方为数b, 求b的各个位的数字,输出时以空格隔开,不要输出多余的空格。
输入示例:
4 1 2 3 4
输出示例:
1 8 7 9 0 8 0 9 0 4
思路:题目不难,用大数乘法做之
2.最短时间
给一个有向图,图的各个顶点的编号在int范围内,顶点之间边的权值表示通过两个顶点之间的时间,求某一点到达另一点的最小时间。如果不能到达,输出-1。
思路:用map将顶点编号做个映射,其余用迪杰斯特拉算法即可
3.寻找表达式
先输入一个数字m,表示后面将输入m个数,接着输入m个数,接着你需要判断:在前m-1个数之间填入运算符号,使其运算后是否能得到最后一个数。如果可以,输出1,不可以,输出0.需要注意的是,有些整数运算虽然除不尽,但也可能出现结果。比如1/5+4/5 = 1
输入示例:
5 1 2 3 4 10
输出示例:
1
思路:没想到太好的办法,只好一个一个判断。模拟分数进行加减法运算。希望读者能提供更好的思路。
时间: 2024-10-12 05:34:18