CCF程序员考试真题及答案Word文件下载.docx
- 文档编号:15054683
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:69
- 大小:204.44KB
CCF程序员考试真题及答案Word文件下载.docx
《CCF程序员考试真题及答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《CCF程序员考试真题及答案Word文件下载.docx(69页珍藏版)》请在冰豆网上搜索。
在序列中的4个数都不满足中间数的定义。
34667
在序列中的5个数都不满足中间数的定义。
评测用例规模与约定
对于所有评测用例,1≤n≤1000,1≤ai
≤1000。
问题链接:
CCF201612试题。
首先输入正整数n,接着输入n个正整数,如果存在一个数,比该数大或比该数小的数则输出该数,如果不存在则输出-1。
问题分析:
这个问题可以用排序来解决,这是基础。
可以证明,如果存在答案则必定所有数排序后的中间位置。
排序方法上有以下几种:
1.对n个数进行排序,找出中间那个数,然后将中间那个数的左右与其相等的数去掉,看左右剩下的数个数是否相等,如果相等则中间那个数就是答案,否在输出-1。
2.使用分治法,按照快速排序的基本思想来处理,只需要将中间的那个数找到即可。
3.使用STL的map类对数据进行排序。
这种方法在同值的数据比较多时候,存储上会节省一些。
4.按照桶排序的基本思想,将相同的值放入同一个桶中,即对同值数据进行计数,然后再计算中间值。
程序说明:
本程序采用上述的第3种方法实现,是一个典型的应用STL容器类的实例。
参见:
CCF201612-1中间数(解法二)(100分)
CCF201612-1中间数(解法三)(100分)
提交后得100分的C++语言程序如下:
[cpp]
viewplain
copy
1./*
CCF201612-1
中间数
*/
2.
3.#include
<
iostream>
4.#include
map>
5.
6.using
namespace
std;
7.
8.int
main()
9.{
10.
map<
int,
int>
m;
11.
int
n,
v;
12.
13.
//
输入数据,构建Map
14.
cin
>
n;
15.
for(int
i=0;
i<
i++)
{
16.
17.
m[v]++;
18.
}
19.
20.
找出中间数
21.
ans,
mid=(n+1)/2,
count=0,
left;
22.
for(map<
int,int>
:
iterator
it=m.begin();
it!
=m.end();
it++)
23.
if(count
+
it->
second
=
mid)
24.
left
count;
25.
count
0;
26.
ans
first;
27.
else
28.
+=
second;
29.
30.
输出结果
31.
if(left
==
count)
32.
cout
endl;
33.
34.
-1
35.
36.
return
37.}
201612-2工资计算问题描述
小明的公司每个月给小明发工资,而小明拿到的工资为交完个人所得税之后的工资。
假设他一个月的税前工资(扣除五险一金后、未扣税前的工资)为S元,则他应交的个人所得税按如下公式计算:
1)个人所得税起征点为3500元,若S不超过3500,则不交税,3500元以上的部分才计算个人所得税,令A=S-3500元;
2)A中不超过1500元的部分,税率3%;
3)A中超过1500元未超过4500元的部分,税率10%;
4)A中超过4500元未超过9000元的部分,税率20%;
5)A中超过9000元未超过35000元的部分,税率25%;
6)A中超过35000元未超过55000元的部分,税率30%;
7)A中超过55000元未超过80000元的部分,税率35%;
8)A中超过80000元的部分,税率45%;
例如,如果小明的税前工资为10000元,则A=10000-3500=6500元,其中不超过1500元部分应缴税1500×
3%=45元,超过1500元不超过4500元部分应缴税(4500-1500)×
10%=300元,超过4500元部分应缴税(6500-4500)×
20%=400元。
总共缴税745元,税后所得为9255元。
已知小明这个月税后所得为T元,请问他的税前工资S是多少元。
输入的第一行包含一个整数T,表示小明的税后所得。
所有评测数据保证小明的税前工资为一个整百的数。
输出一个整数S,表示小明的税前工资。
9255
10000
对于所有评测用例,1≤T≤100000。
解题说明
税前到税后其实就是个分段函数,于是我就干脆先把函数算出来得了,感觉手算比写程序简单.如下图所示.这样写程序就轻而易举了.
1.#include<
2.
3.usingnamespacestd;
4.
5.intS[]={0,3500,5000,8000,12500,38500,58500,83500,999999};
6.intT[]={0,3500,4955,7655,11255,30755,44755,61005,999999};
7.floatf[]={1,0.97,0.9,0.8,0.75,0.7,0.65,0.55,0};
8.
9.intmain(void){
10.intN,i,res;
11.cin>
N;
12.for(i=0;
9;
i++){
13.if(T[i]>
=N){
14.break;
15.}
16.}
17.res=S[i-1]+(N-T[i-1])/f[i-1];
18.cout<
res<
19.
20.return0;
21.}
201612-3权限查询
201612-3
权限查询
授权(authorization)是各类业务系统不可缺少的组成部分,系统用户通过授权机制获得系统中各个模块的操作权限。
本题中的授权机制是这样设计的:
每位用户具有若干角色,每种角色具有若干权限。
例如,用户david具有manager角色,manager角色有crm:
2权限,则用户david具有crm:
2权限,也就是crm类权限的第2等级的权限。
具体地,用户名和角色名称都是由小写字母组成的字符串,长度不超过32。
权限分为分等级权限和不分等级权限两大类。
分等级权限由权限类名和权限等级构成,中间用冒号“:
”分隔。
其中权限类名也是由小写字母组成的字符串,长度不超过32。
权限等级是一位数字,从0到9,数字越大表示权限等级越高。
系统规定如果用户具有某类某一等级的权限,那么他也将自动具有该类更低等级的权限。
例如在上面的例子中,除crm:
2外,用户david也具有crm:
1和crm:
0权限。
不分等级权限在描述权限时只有权限类名,没有权限等级(也没有用于分隔的冒号)。
给出系统中用户、角色和权限的描述信息,你的程序需要回答多个关于用户和权限的查询。
查询可分为以下几类:
*不分等级权限的查询:
如果权限本身是不分等级的,则查询时不指定等级,返回是否具有该权限;
*分等级权限的带等级查询:
如果权限本身分等级,查询也带等级,则返回是否具有该类的该等级权限;
*分等级权限的不带等级查询:
如果权限本身分等级,查询不带等级,则返回具有该类权限的等级;
如果不具有该类的任何等级权限,则返回“否”。
输入第一行是一个正整数p,表示不同的权限类别的数量。
紧接着的p行被称为P段,每行一个字符串,描述各个权限。
对于分等级权限,格式为<
category>
level>
,其中<
是权限类名,<
是该类权限的最高等级。
对于不分等级权限,字符串只包含权限类名。
接下来一行是一个正整数r,表示不同的角色数量。
紧接着的r行被称为R段,每行描述一种角色,格式为
<
role>
<
s>
privilege1>
privilege2>
...<
privileges>
其中<
是角色名称,<
表示该角色具有多少种权限。
后面<
个字符串描述该角色具有的权限,格式同P段。
接下来一行是一个正整数u,表示用户数量。
紧接着的u行被称为U段,每行描述一个用户,格式为
user>
t>
role1>
role2>
rolet>
是用户名,<
表示该用户具有多少种角色。
个字符串描述该用户具有的角色。
接下来一行是一个正整数q,表示权限查询的数量。
紧接着的q行被称为Q段,每行描述一个授权查询,格式为<
privilege>
,表示查询用户<
是否具有<
权限。
如果查询的权限是分等级权限,则查询中的<
可指定等级,表示查询该用户是否具有该等级的权限;
也可以不指定等级,表示查询该用户具有该权限的等级。
对于不分等级权限,只能查询该用户是否具有该权限,查询中不能指定等级。
输出共q行,每行为false、true,或者一个数字。
false表示相应的用户不具有相应的权限,true表示相应的用户具有相应的权限。
对于分等级权限的不带等级查询,如果具有权限,则结果是一个数字,表示该用户具有该权限的(最高)等级。
如果用户不存在,或者查询的权限没有定义,则应该返回false。
3
crm:
2
git:
game
hr1crm:
it3crm:
1git:
1game
dev2git:
3game
qa1git:
alice1hr
bob2itqa
charlie1d
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CCF 程序员 考试 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)