练习题-二维数组中的查找
摘要:《剑指offer》中的一个题目: 在一个二位数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下的递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 例如,下面的二位数组就是每行、每列都递增排序。如果在这个数组中查找数字7,则返回true;如果查
阅读全文
posted @
2015-08-31 17:50
uTank
阅读(418)
推荐(0)
PAT (Basic Level) Practise:1028. 人口普查
摘要:【题目链接】某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过200岁的老人,而今天是2014年9月6日,所以超过200岁的生日和未出生的生日都是不合理的,应该被过滤掉。输入格式:输入在第一...
阅读全文
posted @
2015-08-27 10:33
uTank
阅读(241)
推荐(0)
PAT (Basic Level) Practise:1014. 福尔摩斯的约会
摘要:【题目链接】大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm”。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间“星期四 14:04”,因为前面两字符串中第1对相同的大写英文字母(大小...
阅读全文
posted @
2015-08-26 14:58
uTank
阅读(686)
推荐(0)
PAT (Basic Level) Practise:1019. 数字黑洞
摘要:【题目链接】给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的6174,这个神奇的数字也叫Kaprekar常数。例如,我们从6767开始,将得到7766 - ...
阅读全文
posted @
2015-08-26 10:46
uTank
阅读(263)
推荐(0)
PAT (Basic Level) Practise:1030. 完美数列
摘要:【题目链接】给定一个正整数数列,和正整数p,设这个数列中的最大值是M,最小值是m,如果M 2 3 int main(void) 4 { 5 unsigned int N; 6 unsigned int P; 7 unsigned int max = 0; 8 un...
阅读全文
posted @
2015-08-25 16:33
uTank
阅读(413)
推荐(0)
PAT (Basic Level) Practise:1010. 一元多项式求导
摘要:【题目链接】设计函数求一元多项式的导数。(注:xn(n为整数)的一阶导数为n*xn-1。)输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意...
阅读全文
posted @
2015-08-25 10:48
uTank
阅读(247)
推荐(0)
PAT (Basic Level) Practise:1012. 数字分类
摘要:【题目链接】给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字:A1 = 能被5整除的数字中所有偶数的和;A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4...;A3 = 被5除后余2的数字的个数;A4 = 被5除后余3的数字的平均数,精确到小数点后1位;...
阅读全文
posted @
2015-08-24 18:40
uTank
阅读(227)
推荐(0)
PAT (Basic Level) Practise:1038. 统计同成绩学生
摘要:【题目链接】本题要求读入N名学生的成绩,将获得某一给定分数的学生人数输出。输入格式:输入在第1行给出不超过105的正整数N,即学生总人数。随后1行给出N名学生的百分制整数成绩,中间以空格分隔。最后1行给出要查询的分数个数K(不超过N的正整数),随后是K个分数,中间以空格分隔。输出格式:在一行中按查询...
阅读全文
posted @
2015-08-24 17:38
uTank
阅读(231)
推荐(0)
PAT (Basic Level) Practise:1018. 锤子剪刀布
摘要:【题目链接】大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。输入格式:输入第1行给出正整数N( 2 3 // 0: 平,1:甲胜,2:乙胜 4 int calc_winner(int a...
阅读全文
posted @
2015-08-24 16:19
uTank
阅读(604)
推荐(0)
PAT (Basic Level) Practise:1032. 挖掘机技术哪家强
摘要:【题目链接】为了用事实说明挖掘机技术到底哪家强,PAT组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。输入格式:输入在第1行给出不超过105的正整数N,即参赛人数。随后N行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号(从1开始连续编号)、及其比赛成绩(百分制),中...
阅读全文
posted @
2015-08-24 15:02
uTank
阅读(266)
推荐(0)
PAT (Basic Level) Practise:1031. 查验身份证
摘要:【题目链接】一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:Z:0...
阅读全文
posted @
2015-08-24 14:37
uTank
阅读(307)
推荐(0)
PAT (Basic Level) Practise:1026. 程序运行时间
摘要:【题目链接】要获得一个C语言程序的运行时间,常用的方法是调用头文件time.h,其中提供了clock()函数,可以捕捉从程序开始运行到clock()被调用时所耗费的时间。这个时间单位是clock tick,即“时钟打点”。同时还有一个常数CLK_TCK,给出了机器时钟每秒所走的时钟打点数。于是为了获...
阅读全文
posted @
2015-08-24 11:18
uTank
阅读(447)
推荐(0)
PAT (Basic Level) Practise:1016. 部分A+B
摘要:【题目链接】正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA。例如:给定A = 3862767,DA= 6,则A的“6部分”PA是66,因为A中有2个6。现给定A、DA、B、DB,请编写程序计算PA+ PB。输入格式:输入在一行中依次给出A、DA、B、DB,中间以空格分隔,其...
阅读全文
posted @
2015-08-24 11:03
uTank
阅读(258)
推荐(0)
PAT (Basic Level) Practise:1037. 在霍格沃茨找零钱
摘要:【题目链接】如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易。”现在,给定哈利应付的价钱P和他实付的钱A,你的任务是写一个程序来计算他应该被找的零钱。输入格式:输...
阅读全文
posted @
2015-08-24 10:51
uTank
阅读(1299)
推荐(1)
PAT (Basic Level) Practise:1023. 组个最小数
摘要:【题目链接】给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)。例如:给定两个0,两个1,三个5,一个8,我们得到的最小的数就是10015558。现给定数字,请编写程序输出能够组成的最小的数。输入格式:每个输入包含1个测试用例。每...
阅读全文
posted @
2015-08-21 16:09
uTank
阅读(1341)
推荐(0)
PAT (Basic Level) Practise:1022. D进制的A+B
摘要:【题目连接】输入两个非负10进制整数A和B( 2 3 int convert(int a, int b, int c, int *d, int len) 4 { 5 int cnt, x; 6 int calc = a + b; 7 8 cnt = 0; 9 ...
阅读全文
posted @
2015-08-21 15:51
uTank
阅读(665)
推荐(0)
全排序算法
摘要:全排序算法 1 /** 2 * 对arr数组中的begin~end进行全排列 3 * 4 * 比如: 5 * arr = {1,2,3} 6 * 第一步:执行 perm({1,2,3},0,2),begin=0,end=2; 7 * j=0,因此执行perm(...
阅读全文
posted @
2015-08-19 17:24
uTank
阅读(394)
推荐(0)