一、单项选择题(每题只有一个正确选项,每题2分,共30分)
二、阅读程序(程序输入不超过数组或字符串定义的范围;判断题正确填√,错误填×;除特殊说明外,判断题 1.5 分,选择题 3 分,共计 40 分)
1.
注:
● 判断题
1.云云有n个幸运数字 。此外,他定义正整数x是厄运的,当且仅当它不是任何一个幸运数字的倍数。他想知道有多少个小于等于k的正整数是厄运的。
输入第一行给定幸运数字的个数和上界。第二行有n个数,即幸运数字 。
输出合法正整数的个数。
提示:本题可以使用容斥原理,比如说我们有4个数字:2、5、11、13,那我们可以先求出<=k的有多少个他们的倍数,这里假设有a、b、c、d个,然后分别求有多少个数是10、22、26、55、65、143的倍数(这几个数字是2、5、11、13两两组合的最小公倍数),然后求<=k有多少个数是他们的倍数,假设是e、f、g、h、i、j,以此类推......那么最终的答案就是ans = n - (a+b+c+d) + (e+f+g+h+i+j) - ... + ...个。
试补全程序。
2.一套牌由n张数字牌(从1到n)和n张空牌(用0标注)组成,其中n张牌在你手中,其余形成牌堆。一次操作可以将手中的任意一张牌置入牌堆底,并从牌堆顶摸入新的手牌。求最少多少次操作能让最终手牌均为空牌,且牌堆从上到下第i张牌恰好数值为i。
输入第一行给定数字牌个数第二行有n个数,分别表示初始你的每张手牌,空牌以0标注。第三行有n个数,第i个数表示初始从上到下第i张牌的数值,空牌以0标注。输出达到目标最少的操作数。
提示:可以采用贪心解决这个问题,最优策略一定是下面两种之一:
•存在x,依次从手牌中取出x张空牌,再依次取出数值牌1,2,…,n
•存在 x,依次从手牌中取出数值牌x,x+1,…, n
评价对象得分