Basic Pat
文章平均质量分 64
烟蓑雨笠
这个作者很懒,什么都没留下…
展开
-
Pat(Basic Level)Practice--1039(到底买不买)
Pat1039代码题目描述:小红想买些珠子做一串自己喜欢的珠串。卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖。于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子;如果不是,那么告诉她缺了多少珠子。为方便起见,我们用[0-9]、[a-z]、[A-Z]范围内的字符来表示颜色。例如在图1中,第3串是小红想做的原创 2015-05-19 19:29:32 · 869 阅读 · 0 评论 -
Pat(Basic Level)Practice--1035(插入与归并)
Pat1035代码题目描述:根据维基百科的定义:插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列。每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置。如此迭代直到全部元素有序。归并排序进行如下迭代操作:首先将原始序列看成N个只包含1个元素的有序子序列,然后每次迭代归并两个相邻的有序子序列,直到最后只剩下1个有序的序列。现给定原创 2015-01-07 21:32:25 · 1620 阅读 · 0 评论 -
Pat(Basic Level)Practice--1034(有理数四则运算)
Pat1034代码题目描述:本题要求编写程序,计算2个有理数的和、差、积、商。输入格式:输入在一行中按照“a1/b1 a2/b2”的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只可能出现在分子前,分母不为0。输出格式:分别在4行中按照“有理数1 运算符 有理数2 = 结果”的格式顺序输出2个有理数的和、差、积、商。注意输原创 2015-01-07 21:29:10 · 1395 阅读 · 0 评论 -
Pat(Basic Level)Practice--1033(旧键盘打字)
Pat1033代码题目描述:旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及坏掉的那些键,打出的结果文字会是怎样?输入格式:输入在2行中分别给出坏掉的那些键、以及应该输入的文字。其中对应英文字母的坏键以大写给出;每段文字是不超过105个字符的串。可用的字符包括字母[a-z, A-Z]、数字0-9、以及下划线“_”原创 2015-01-07 21:23:47 · 1120 阅读 · 0 评论 -
Pat(Basic Level)Practice--1031(查验身份证)
Pat1031代码题目描述:一个合法的身份证号码由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 1 2 3 4 5 6 7 8 9 10M原创 2015-01-07 21:15:15 · 1037 阅读 · 0 评论 -
Pat(Basic Level)Practice--1020(月饼)
Pat1020代码解题思路:贪心算法,没什么好说的。。。#include#includetypedef struct MCake{ float left; float price; float value;}MCake;int comp(const void *a,const void *b){ return (*(MCake *)a).value<(*(MCake *原创 2014-01-28 11:56:43 · 1318 阅读 · 0 评论 -
Pat(Basic Level)Practice--1019(数字黑洞)
Pat1019代码题目描述:http://pat.zju.edu.cn/contests/pat-b-practise/1019这个题目是遇到的最郁闷的题目,我的代码居然一个case都没通过,下面我把AC代码和我的代码都贴出来,如果有谁知道我的代码为什么错了,请说出来,谢谢。。。AC代码:#include #include using namespace std; in原创 2014-01-28 11:53:51 · 2531 阅读 · 8 评论 -
Pat(Basic Level)Practice--1018(锤子剪刀布)
Pat1018代码#include#includeint main(int atgc,char *argv[]){ int k; int JS=0,JP=0,JF=0;//甲胜,平,负的次数 int YS=0,YP=0,YF=0;//乙胜,平,负的次数 char J,Y;//甲乙出的手势C,J,B int JSCount[3]={0,0,0},YSCount[3]={0,0,原创 2014-01-28 10:38:35 · 1009 阅读 · 0 评论 -
Pat(Basic Level)Practice--1017(A除以B)
Pat1017代码#include#include#define N 1001int main(int argc,char *argv[]){ int i,j,len; char A[N]; int B,Q[N],R; scanf("%s %d",A,&B); R=0; len=strlen(A); for(i=0;i<len;i++) { Q[i]=(R原创 2014-01-27 22:10:19 · 1267 阅读 · 0 评论 -
Pat(Basic Level)Practice--1028 (人口普查)
Pat1028代码题目描述:某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过200岁的老人,而今天是2014年9月6日,所以超过200岁的生日和未出生的生日都是不合理的,应该被过滤掉。输入格式:输入在第一行给出正整数N,取值在(0, 105];随后N行,每行给出1原创 2014-12-30 23:20:00 · 775 阅读 · 0 评论 -
Pat(Basic Level)Practice--1032(挖掘机技术哪家强)
Pat1032代码题目描述:为了用事实说明挖掘机技术到底哪家强,PAT组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。输入格式:输入在第1行给出不超过105的正整数N,即参赛人数。随后N行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号(从1开始连续编号)、及其比赛成绩(百分制),中间以空格分隔。输出格式:在一行中原创 2015-01-07 21:19:14 · 1371 阅读 · 0 评论 -
Pat(Basic Level)Practice--1038(统计同成绩学生)
Pat1038代码题目描述:本题要求读入N名学生的成绩,将获得某一给定分数的学生人数输出。输入格式:输入在第1行给出不超过105的正整数N,即学生总人数。随后1行给出N名学生的百分制整数成绩,中间以空格分隔。最后1行给出要查询的分数个数K(不超过N的正整数),随后是K个分数,中间以空格分隔。输出格式:在一行中按查询顺序给出得分等于指定分数的学生人原创 2015-05-19 19:26:14 · 1130 阅读 · 0 评论 -
Pat(Basic Level)Practice--1037(在霍格沃茨找零钱)
Pat1037代码题目描述:如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易。”现在,给定哈利应付的价钱P和他实付的钱A,你的任务是写一个程序来计算他应该被找的零钱。输入格式:输入在1行中分别给出P和A,格式为“Galleon原创 2015-05-19 19:23:29 · 1048 阅读 · 2 评论 -
Pat(Basic Level)Practice--1036(跟奥巴马一起编程)
Pat1036代码题目描述:美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!输入格式:输入在一行中给出正方形边长N(3输出格式:输出由给定字符C画出的正方形。但是注意到原创 2015-05-19 19:20:05 · 873 阅读 · 0 评论 -
Pat(Basic Level)Practice--1040(有几个PAT)
Pat1040代码题目描述:字符串APPAPT中包含了两个单词“PAT”,其中第一个PAT是第2位(P),第4位(A),第6位(T);第二个PAT是第3位(P),第4位(A),第6位(T)。现给定字符串,问一共可以形成多少个PAT?输入格式:输入只有一行,包含一个字符串,长度不超过105,只包含P、A、T三种字母。输出格式:在一行中输出给原创 2015-05-19 19:32:12 · 923 阅读 · 0 评论 -
Pat(Basic Level)Practice--1030(完美数列)
Pat1030代码题目描述:给定一个正整数数列,和正整数p,设这个数列中的最大值是M,最小值是m,如果M 现在给定参数p和一些正整数,请你从中选择尽可能多的数构成一个完美数列。输入格式:输入第一行给出两个正整数N和p,其中N(5)是输入的正整数的个数,p(9)是给定的参数。第二行给出N个正整数,每个数不超过109。输出格式:在一行中输出最多可以选择多少个数可以用它们原创 2014-12-30 23:30:29 · 1776 阅读 · 2 评论 -
Pat(Basic Level)Practice--1026(程序运行时间)
Pat1026代码题目描述:要获得一个C语言程序的运行时间,常用的方法是调用头文件time.h,其中提供了clock()函数,可以捕捉从程序开始运行到clock()被调用时所耗费的时间。这个时间单位是clock tick,即“时钟打点”。同时还有一个常数CLK_TCK,给出了机器时钟每秒所走的时钟打点数。于是为了获得一个函数f的运行时间,我们只要在调用f之前先调用clock()原创 2014-12-30 22:57:19 · 657 阅读 · 0 评论 -
Pat(Basic Level)Practice--1029(旧键盘)
Pat1029代码题目描述:旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏掉的那些键。输入格式:输入在2行中分别给出应该输入的文字、以及实际被输入的文字。每段文字是不超过80个字符的串,由字母A-Z(包括大、小写)、数字0-9、以及下划线“_”(代表空格)组成。题目保证2个字符串均非空。输出原创 2014-12-30 23:24:41 · 768 阅读 · 0 评论 -
Pat(Basic Level)Practice--1027(打印沙漏)
Pat1027代码题目描述:本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印***** *** * ********所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的原创 2014-12-30 23:15:35 · 759 阅读 · 0 评论 -
Pat(Basic Level)Practice--1016(部分A+B)
Pat1016代码#include#include#define N 15int main(int argc,char *argv[]){ int sum; char A[N],B[N]; int DA,DB; int PA=0,PB=0; int i,len; scanf("%s %d %s %d",A,&DA,B,&DB); len=strlen(A); for原创 2014-01-27 18:35:17 · 849 阅读 · 0 评论 -
Pat(Basic Level)Practice--1015(德才论)
Pat1015代码#include#include#define MAX 100000int number[MAX],virtue[MAX],ability[MAX];int compare(const void *a,const void *b);int main(){ //int number[MAX],virtue[MAX],ability[MAX]; int first原创 2014-01-27 18:32:04 · 971 阅读 · 0 评论 -
Pat(Basic Level)Practice--1014(福尔摩斯的约会)
Pat1014代码#include #include #include int main(int argc,char *argv[]){ char str[4][61]; memset(str,0,sizeof(str)); scanf("%s%s%s%s",str[0],str[1],str[2],str[3]); int len1 = strlen(str[0])原创 2014-01-27 14:02:33 · 863 阅读 · 0 评论 -
Pat(Basic Level)Practice--1011(A+B和C)
Pat1011代码#includeint main(int argc,char *argv[]){ int n; long long A,B,C; int count=1; scanf("%d",&n); while(n--) { scanf("%lld%lld%lld",&A,&B,&C); if(A+B>C) printf("Case #%d: true\n原创 2014-01-27 10:19:04 · 1805 阅读 · 0 评论 -
Pat(Basic Level)Practice--1009(说反话)
Pat1009代码#include#include#include#define N 100//字符串长度#define M 50//单词长度int main(int argc,char *argv[]){ char str[N]; char word[M]; int i=0,j=0; int len; gets(str); len=strlen(str); i=原创 2014-01-26 18:48:11 · 855 阅读 · 0 评论 -
Pat(Basic Level)Practice--1001(害死人不偿命的3n+1猜想)
Pat1001代码#includeint main(int argc,char *argv[]){ int n; int count=0; scanf("%d",&n); while(n!=1) { if(n%2==0) n=n/2; else n=(3*n+1)/2; count++; } printf("%d\n",count); r原创 2014-01-25 19:32:57 · 949 阅读 · 0 评论 -
Pat(Basic Level)Practice--1025(反转链表)
Pat1025代码题目描述:给定一个常数K以及一个单链表L,请编写程序将L中每K个结点反转。例如:给定L为1→2→3→4→5→6,K为3,则输出应该为3→2→1→6→5→4;如果K为4,则输出应该为4→3→2→1→5→6,即最后不到K个元素不反转。输入格式:每个输入包含1个测试用例。每个测试用例第1行给出第1个结点的地址、结点总个数正整数N(5)、以及正整数K(原创 2014-03-05 20:53:43 · 2398 阅读 · 7 评论 -
Pat(Basic Level)Practice--1023(组个最小数)
Pat1023代码题目描述:给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)。例如:给定两个0,两个1,三个5,一个8,我们得到的最小的数就是10015558。现给定数字,请编写程序输出能够组成的最小的数。输入格式:每个输入包含1个测试用例。每个测试用例在一行中给出10个非负整数,顺原创 2014-03-04 19:35:45 · 986 阅读 · 0 评论 -
Pat(Basic Level)Practice--1024(科学计数法)
Pat1024代码题目描述:科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+-][0-9]+,即数字的整数部分只有1位,小数部分至少有1位,该数字及其指数部分的正负号即使对正数也必定明确给出。现以科学计数法的格式给出实数A,请编写程序按普通数字表示法输出A,并保证所有有效位都被保留。输入格式:原创 2014-03-04 20:26:54 · 992 阅读 · 0 评论 -
Pat(Basic Level)Practice--1022(D进制的A+B)
Pat1022代码题目描述:输入两个非负10进制整数A和B(30-1),输出A+B的D (1 输入格式:输入在一行中依次给出3个整数A、B和D。输出格式:输出A+B的D进制数。输入样例:123 456 8输出样例:1103AC代码:#include#define MAX 1000using names原创 2014-03-04 19:07:08 · 1654 阅读 · 1 评论 -
Pat(Basic Level)Practice--1021(个位数统计)
Pat1021代码题目描述:给定一个k位整数N = dk-1*10k-1 + ... + d1*101 + d0 (0i<=9, i=0,...,k-1, dk-1>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定N = 100311,则有2个0,3个1,和1个3。输入格式:每个输入包含1个测试用例,即一个不超过1000位的正整数N。输出原创 2014-03-04 18:40:22 · 1087 阅读 · 0 评论 -
Pat(Basic Level)Practice--1004(成绩排名)
Pat1004代码#include#includetypedef struct student{ char name[16]; char num[16]; int score;}Student;int main(int argc,char *argv[]){ int n,i,j; Student *stu,temp; scanf("%d",&n); getchar原创 2014-01-26 11:52:12 · 1297 阅读 · 0 评论 -
Pat(Basic Level)Practice--1005(继续3n+1猜想)
Pat1005代码题目描述:这里就不再赘述,详情请看:http://pat.zju.edu.cn/contests/pat-b-practise/1005解题思路:如果一个数是关键字,那么它肯定不再覆盖数组里,所以只需求出序列的覆盖数组,如果序列中某个数不在数组里,那么它就是关键字。#include#include#include#define N 5000int comp(原创 2014-01-26 13:32:23 · 894 阅读 · 0 评论 -
Pat(Basic Level)Practice--1013(数素数)
Pat1013代码#includeint Is_Prime(int n){ int i; if(n==2) return 1; if(n<2||n%2==0) return 0; for(i=3;i*i<=n;i=i+2) if(n%i==0) return 0; return 1;}int main(int argc,char *argv[]){原创 2014-01-27 12:03:58 · 898 阅读 · 0 评论 -
Pat(Basic Level)Practice--1012(数字分类)
Pat1012代码#include#define N 1001int main(int argc,char *argv[]){ int n,count1=0,count2=0; int arr[N]; int i,flag=1; int A1=0,A2=0,A3=0,A5=0; float A4=0; scanf("%d",&n); for(i=0;i<n;i++)原创 2014-01-27 10:50:56 · 915 阅读 · 0 评论 -
Pat(Basic Level)Practice--1010(一元多项式求导)
Pat1010代码题目链接:http://pat.zju.edu.cn/contests/pat-b-practise/1010#include #include int main(){ int n, e, flag = 0; while (scanf("%d%d", &n, &e) != EOF) { if( n*e ) { if(flag) prin原创 2014-01-26 22:20:36 · 1101 阅读 · 1 评论 -
Pat(Basic Level)Practice--1008(数组元素循环右移问题)
Pat1008代码解题思路:本题走了捷径,并没有按照题目的要求只用一个数组,但结果很快就AC了。换句话说,我们的目标是解决问题,而不是为了写程序而写程序,同时应保持简单(Keep It Simple and Stupid,KISS),而不是自己创造条件去展示编程技巧。#include#define N 100int main(int argc,char *argv[]){ in原创 2014-01-26 18:19:20 · 819 阅读 · 0 评论 -
Pat(Basic Level)Practice--1003(我要通过)
Pat1003代码题目描述:这里不再赘述,请看链接点击打开链接解题要点:由(2),(3)两个条件可知在PT之间每次插入一个A,T的右边就插入一次P左边的字符串,所以T右边A的个数是P左边A的个数的整数倍,并且这个数就是PT之间A的个数#include#include#define N 100int main(int argc,char *argv[]){ char str[原创 2014-01-26 11:49:39 · 1146 阅读 · 0 评论 -
Pat(Basic Level)Practice--1002(写出这个数)
Pat1002代码#include#include#define N 100int main(int argc, char *argv[]){ char str[N]; int stack[N]; char mode[10][10]={"ling","yi","er","san","si","wu", "liu","qi","ba","jiu"}; int sum=0;原创 2014-01-25 19:39:06 · 1164 阅读 · 0 评论 -
Pat(Basic Level)Practice--1007(素数对猜想)
Pat1007代码#include#include#define N 10010int Is_Prime(int n){ int i; if(n<2||n%2==0) return 0; if(n==2) return 1; for(i=3;i*i<=n;i=i+2) if(n%i==0) return 0; return 1;}int main(原创 2014-01-26 14:53:11 · 1291 阅读 · 0 评论 -
Pat(Basic Level)Practice--1006(换个格式输出整数)
Pat1006代码#includeint main(int argc,char *argv[]){ int n; int i,k; scanf("%d",&n); i=n/100; while(i) { printf("%c",'B'); i--; } i=n/10%10; while(i) { printf("%c",'S'); i--; } i原创 2014-01-26 13:39:51 · 794 阅读 · 0 评论