一、编程题
1、质数
质数是一个大于1的自然数,除了1和它本身外,不能被其他自然数整除。
下面的程序设计中,先自定义一个函数,用来判断一个数是否为质数。
然后,通过键盘输入一个数,调用所编写的函数,判断该输入的数是否为质数。
请根据上述设计思想,完成程序段中划线处的填空。
参考答案:
略
解析:【喵呜刷题小喵解析】根据题目要求,首先定义一个函数is_prime来判断一个数是否为质数。函数中,先判断输入的数n是否小于等于1,若是,则直接返回False,因为质数定义中明确指出质数大于1。然后,使用一个for循环从2遍历到n的平方根(取整),判断n是否能被i整除,若能,则返回False,否则继续循环。若循环结束后仍未返回False,则说明n是一个质数,返回True。接着,通过键盘输入一个数n,调用is_prime函数判断该数是否为质数。若是,则输出该数是质数,否则输出该数不是质数。
2、随机生成的10个在[1,100) 范围内整数存入列表;
输入一个待查找的整数k,运用二分法在列表中查找k,根据查找状态输出对应的结果,请将程序补充完整。
运行结果1:
[13, 25, 27, 41, 52, 66, 67, 69, 72, 75]
72
找到,下标是: 8
运行结果2:
[9, 15, 16, 19, 27, 31, 43, 64, 84, 93]
20
没有找到这个数!
参考答案:
略
解析:【喵呜刷题小喵解析】本题要求使用二分法在列表中查找一个待查找的整数k,并输出查找结果。首先,我们定义一个函数binary_search,该函数接受两个参数:一个列表nums和一个目标值target。在函数内部,我们定义两个指针left和right,分别指向列表的起始位置和结束位置。然后,我们进入一个while循环,只要left小于等于right,就继续循环。在每一次循环中,我们计算中间位置mid,然后判断中间位置的元素nums[mid]与目标值target的关系。如果nums[mid]等于target,说明找到了目标值,返回对应的下标。如果nums[mid]小于target,说明目标值在mid的右边,将left更新为mid+1。如果nums[mid]大于target,说明目标值在mid的左边,将right更新为mid-1。如果while循环结束仍然没有找到目标值,说明列表中不存在目标值,返回"没有找到这个数!"。最后,我们分别调用binary_search函数,传入不同的列表和目标值,并打印输出结果。
3、有一群兔子,4个4个地数余1个,5个5个地数余2个,9个9个地数余7个,试问兔子有多少只?(请将程序补充完整)
参考答案:
略
解析:【喵呜刷题小喵解析】本题是一道经典的同余方程问题,可以通过构造一个循环来求解。首先,我们可以从0开始,每次加1,然后判断这个数是否满足题目中的三个条件:4个4个地数余1个,5个5个地数余2个,9个9个地数余7个。如果满足条件,则返回这个数;如果不满足条件,则继续加1,直到找到满足条件的数为止。在Python中,我们可以使用while循环来实现这个算法。在循环中,每次将n加1,然后判断n是否满足题目中的条件。如果满足条件,则使用return语句返回n,退出循环;如果不满足条件,则继续循环,直到找到满足条件的数为止。注意,这个问题可能存在多个解,因为可能存在多个数同时满足题目中的条件。因此,我们在算法中只需要找到一个解即可。如果需要找到所有的解,可以在找到一个解后,将n加1,继续寻找下一个解。
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!