因数分解
时间限制:1.0 s
内存限制:128.0 MB
问题描述:
每个正整数都可以分解成素数的乘积,例如:6=2×3、20=22×5
现在,给定一个正整数N,请按要求输出它的因数分解式。
输入描述:
输入第一行,包含一个正整数N。约定2≤N≤1012
输出描述:
输出一行,为N的因数分解式。要求按质因数由小到大排列,乘号用星号*表示,且左右各空一格。当且仅当一个素数出现多次时,将它们合并为指数形式,用上箭头^表示,且左右不空格。
样例输入1
6
样例输出1
2 * 3
样例输入2
20
样例输出2
2^2 * 5
样例输入3
23
样例输出3
23
巧夺大奖
时间限制:1.0 s
内存限制:128.0 MB
问题描述:
小明参加了一个巧夺大奖的游戏节目。主持人宣布了游戏规则:
1、游戏分为n个时间段,参加者每个时间段可以选择一个小游戏。
2、游戏中共有n个小游戏可供选择。
3、每个小游戏有规定的时限和奖励。对于第i个小游戏,参加者必须在第Ti个时间段结束前完成才能得到奖励Ri。
小明发现,这些小游戏都很简单,不管选择哪个小游戏,他都能在一个时间段内完成。关键问题在于,如何安排每个时间段分别选择哪个小游戏,才能使得总奖励最高?
输入描述:
输入第一行,包含一个正整数n。 既是游戏时间段的个数,也是小游戏的个数。约定1≤n≤500。
输入第二行,包含n个正整数。第i个正整数为Ti,即第i个小游戏的完成期限。约定1≤Ti≤n。
输入第三行,包含n个正整数。第i个正整数为Ri,即第i个小游戏的完成奖励。约定1≤Ri≤1000。
输出描述:
输出一行,包含一个正整数C,为最高可获得的奖励。
样例输入1
7
4 2 4 3 1 4 6
70 60 50 40 30 20 10
样例输出1
230
样例解释1
7个时间段可分别安排完成第4、2、3、1、6、7、5个小游戏,其中第4、2、3、1、7个小游戏在期限内完成。因此,可以获得总计40+60+50+70+10=230的奖励。
有关下面Python代码的说法正确的是( )。
上述代码构成单向链表
上述代码构成双向链表
上述代码构成循环链表
上述代码构成指针链表
下面Python代码中的 isPrimeA() 和 isPrimeB() 都用于判断参数 是否为素数,有关其时间复杂度的正确说法是( )。
isPrimeA() 的最坏时间复杂度是0(N) , isPrimeB() 的最坏时间复杂度是0(logN) , isPrimeA() 优于isPrimeB()
isPrimeA() 的最坏时间复杂度是0(N) , isPrimeB() 的最坏时间复杂度是 0(N1/2), isPrimeB() 优于isPrimeA()
isPrimeA() 的最坏时间复杂度是 0(N1/2), isPrimeB() 的最坏时间复杂度是 0(N), isPrimeA() 优于isPrimeB()
isPrimeA() 的最坏时间复杂度是 0(logN), isPrimeB() 的最坏时间复杂度是 0(N), isPrimeB() 优于isPrimeB()
下面Python代码以递归方式实现字符串反序,横线处应填上代码是 ( )。
sReverse(sIn[1:]) + sIn[:1]
sReverse(sIn[:1]) + sIn[1:]
sIn[:1] + sReverse(sIn[1:])
sIn[1:] + sReverse(sIn[:1])
下列Python代码执行后输出的是( )。
[4, 5, 6, lstA]
[4, 5, 6, 1, 2, 3]
[4, 5, 6, [1, 2, 3]]
执行将报错,因为 lstA 已经被删除
有关下面Python代码说法错误的是 ( )。
sumA() 用循环方式求1~N之和, sumB() 用递归方式求1~N之和
默认情况下,倒数第二行被执行时如果输入较小的正整数如 100 ,即倒数第一行能正确被执行,则能实现求1到N之和
默认情况下,倒数第二行被执行时如果输入较大的正整数如 10000 ,倒数第一行被能正确被执行,能实现求1到N之和
默认情况下,一般说来, sumA() 和效率高于 sumB()
近年来,线上授课变得普遍,很多有助于改善教学效果的设备也逐渐流行,其中包括比较常用的手写板,那么它属于哪类设备?( )
输入
输出
控制
记录
印度古老传说:创世时有三根金刚柱,其中一柱从下往上按照大小顺序摞着64片黄金圆盘,当圆盘逐一从一柱借助另外一柱全部移动到另外一柱时,宇宙毁灭。移动规则:在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。下面的Python代码以递归方式实现汉诺塔,横线处应填入代码是( )。
Hanoi(B, C, A, N-2)
Hanoi(B, A, C, N-1)
Hanoi(A, B, C, N-2)
Hanoi(C, B, A, N-1)
下面Python代码用于归并排序,其中 merge() 函数被调用次数为( )。
0
1
6
7
根据下面Python代码的注释,横线处应填入( )。
isOdd isOdd(x)
isOdd(x) isOdd
isOdd isOdd
isOdd(x) isOdd(x)
下面代码执行后的输出是( )。
4#3#2#2#4
4#3#2#2#1#5
4#3#2#1#2#4
4#3#2#1#2#5
有关下面Python代码正确的是( )。
checkNum() 函数定义错误
最后一行代码将 isEven 作为 checkNum() 参数将导致错误
最后一行代码执行后将输出 True
触发异常
有关下面Python代码正确的是( )。
checkNum() 函数定义错误
倒数第 行代码将 isOdd 作为 checkNum() 参数将导致错误
最后一行代码将 Add 作为 checkNum() 参数将导致错误
倒数两行代码执行后都将没有错误
以下关于Python语言的描述,错误的是( )。
Python提供了常用的数据结构,并支持面向对象编程
Python是解释型语言
Python是一种高级程序设计语言
Python程序在运行前需要预先编译
归并排序算法的基本思想是( )。
将数组分成两个子数组,分别排序后再合并。
随机选择一个元素作为枢轴,将数组划分为两个部分。
从数组的最后一个元素开始,依次与前一个元素比较并交换位置。
比较相邻的两个元素,如果顺序错误就交换位置。
在上题的归并排序算法中,代码
Left, Right = mergeSort(listData[:Middle]),
mergeSort(listData[Middle:]) 涉及到的算法有( )。
搜索算法
分治算法
贪心算法
递推算法
在特殊情况下流程图中可以出现三角框和圆形框。
正确
错误
贪心算法的解可能不是最优解。
正确
错误
TCP/IP的传输层的两个不同的协议分别是UDP和TCP。
正确
错误
Python的内置函数 sorted() 可以对支持 for-in 循环的 str 、 list 、 tuple 、 dict 、 set 排序,且是稳定排序。
正确
错误
一般说来,冒泡排序算法优于归并排序。
正确
错误
Python的in运算符相当于通过查找算法判断元素是否存在,其查找通常采用二分法。
正确
错误
找出自然数N以内的所有质数常用埃氏筛法,其时间复杂度为 0(N)。
正确
错误
下面的Python代码将输出0-99(包含0和99)之间的整数,顺序随机。
正确
错误
下面的Python代码执行后将输出 [0, 5, 1, 6, 2, 3, 4] 。
正确
错误
在以下Python代码中,最后一行代码执行时将报错,因为y所代表的数已经被删除。
正确
错误