pat
stupidArthur
这个作者很懒,什么都没留下…
展开
-
PAT BASIC 1015 德才论
思路:这个题就涉及到qsort的使用,主要是compare函数的设计。这里先引用一下一个帖子:qsort函数的使用有空自己来写一写。记得加头文件#include<cstdlib>代码:#include<iostream>#include<cstdlib>using namespace std;struct Stu{ int id; int mo; //morality int原创 2017-02-09 23:50:22 · 331 阅读 · 0 评论 -
PAT BASIC 1016 部分A+B
思路:这个题,感觉突然比前面几个题简单了很多。那就是遍历一遍字符串,如果有和匹配字符一样的,就把答案乘十加匹配字符,其实也可以直接字符串相加。不过由于题目简单,都随便了。然后把两个字符串的结果相加一下。 代码:#include<iostream>#include<string>using namespace std;int main(){ string str; int s;原创 2017-02-10 00:13:52 · 221 阅读 · 0 评论 -
PAT BASIC 1017 A除以B
思路:这就是一个高精度的除法问题,贪心代码的长度,所以我直接用string类型输入操作了,结果都是一样的。 所谓高精度,就是用数组,来完成比较长的数字的计算,就像我们小学的时候列竖式求解加减乘除法一样,应该来说看一眼代码就能够理解。代码:#include<iostream>#include<string>using namespace std;int main(){ string st原创 2017-02-10 00:26:46 · 298 阅读 · 0 评论 -
PAT BASIC 1018 锤子剪刀布
思路:这是一个繁杂的纯粹模拟题,甚至算法里面连循环都不用,唯一的for语句是因为要处理n次。我选择使用两个嵌套的switch语句来模拟每一种情况,然后把该记录的东西都记录下来,也没有什么边界情况需要考虑,仔细。 代码:#include<iostream>using namespace std;int num[3] = { 0 };int jia[3] = { 0 }, yi[3] = { 0原创 2017-02-10 18:27:32 · 285 阅读 · 0 评论 -
PAT BASIC 1019 数字黑洞
思路:这个题就是疯狂地把int类型的四位数转换成array类型,然后再转换回来,没什么难度,但是不要把正反的输出方式搞错了,不要把1286弄成8621。 代码:#include<iostream>#define Last 6174using namespace std;int num, part[4] = { 0 };int check();int check(){ int i, j原创 2017-02-11 13:36:19 · 246 阅读 · 0 评论 -
PAT BASIC 1020 月饼
思路:本题考察了贪心的思想,不买对的,就买贵的。先按照单价进行排序,在德才论中,我们已经会用qsort来给struct类型排序了,那么就用起来。注意这里的库存量也是double类型的,不要被样例欺骗了。代码:#include<iostream>#include<cstdlib>#include<iomanip>using namespace std;struct Objc{ doubl原创 2017-02-11 14:19:47 · 248 阅读 · 0 评论 -
PAT BASIC 1021 个位数统计
思路:这是一个简单的模拟题,没什么要注意的。 代码:#include<iostream>#include<string>using namespace std;int num[10] = { 0 };string str;int main(){ int len, i; cin >> str; len = str.size(); for (i = 0; i < len; i原创 2017-02-11 14:27:46 · 270 阅读 · 0 评论 -
PAT BASIC 1022 D进制的A+B
思路:这是一个进制转换的题,首先确认a+b的值还是在int范围内的,所以只需要把d转换成数组。需要注意的一点就是0+0的情况。 代码:#include<iostream>using namespace std;int num[100] = { 0 };int a, b, c, d;int main(){ int count = 0; cin >> a >> b >> c; d原创 2017-02-11 14:37:59 · 198 阅读 · 0 评论 -
PAT BASIC 1023 组个最小数
思路:这个组最小数的方法应该说比较简单,先用一个非零的最小数放首位,然后从0到9一位位放。 代码:#include<iostream>#define n 10using namespace std;int num[10] = { 0 };int main(){ int i, j; int count; for (i = 0; i < 10; i++) cin >> nu原创 2017-02-11 14:47:38 · 257 阅读 · 0 评论 -
PAT BASIC 1042
思路:这个题就是个普通的字符串处理的题,不要忘了大小写的处理,没有什么要特殊注意的点。 代码:#include<iostream>#include<string>using namespace std;int main(){ int len, i, j, max = 0; int num[26] = { 0 }; string str; char s; getline(原创 2017-02-25 09:47:37 · 196 阅读 · 0 评论 -
PAT BASIC 1014 福尔摩斯的约会
思路:一个判定条件比较复杂的字符串处理题,感觉又是题目表达得不太明确,没什么特别要注意的,条件之间的&&和||关系不要搞错就好了。 代码:#include<iostream>#include<string>using namespace std;string a, b;int len, week, hour, minu;string eWeek[7] = { "MON ", "TUE "原创 2017-02-07 22:48:07 · 187 阅读 · 0 评论 -
PAT BASIC 1013 数素数
思路:这个题就是用筛法把前10000个素数都求出来,然后按照格式输出。输出的时候注意最后一个即使不是一行的末位也不用输出空格。 代码:#include<iostream>#include<math.h>using namespace std;int state[1000001];int prime[20000];void findPrime(int n);void findPrime(i原创 2017-02-07 16:29:57 · 297 阅读 · 0 评论 -
PAT BASIC 1012
思路:这个题大概是想考switch的使用吧,没什么难点,如果想知道cout怎么保留一位小数,去看一下我的博客然后这个题的样例2我觉得有问题,明明有5,不能说是没有。既然样例这么理解那就按照他来。 代码:#include<iostream>#include<iomanip>using namespace std;int main(){ int state[5] = { 0 }; in原创 2017-02-07 15:46:58 · 237 阅读 · 0 评论 -
PAT advanced 1001
A+B Format (20)Calculate a + b and output the sum in standard format – that is, the digits must be separated into groups of three by commas (unless there are less than four digits).InputEach input file原创 2017-01-07 16:45:51 · 337 阅读 · 0 评论 -
PAT BASIC 1003
注意点1、其实就是要求P之前的A的数量乘以PT之间A的数量等于T之后A的数量 2、注意PT中间等于零的情况 3、注意PT两个字母:必须P在T之前出现,各有且仅有一次 代码#include<iostream>#include<string>using namespace std;void checkPAT();void checkPAT(){ string str; int po原创 2017-02-06 19:04:11 · 229 阅读 · 0 评论 -
PAT BASIC 1007
思路:此题没有什么特别要注意的点,就是先用筛法求出n一下所有的素数,然后线性判断相邻的差是否为2 代码:#include<iostream>#include<math.h>using namespace std;int state[100001];int prime[20000];void findPrime(int n);void findPrime(int n){ int原创 2017-02-06 19:56:15 · 315 阅读 · 0 评论 -
PAT BASIC 1004
思路:此题是比较简单的一个模拟题,两个struct类型的变量分别记录第一名和最后一名,另一个变量输入,每次输入就判断并更新第一名和最后一名的信息。 代码:#include<iostream>#include<string>using namespace std;struct Student{ string name; string id; int score;};int ma原创 2017-02-06 20:44:11 · 189 阅读 · 0 评论 -
PAT BASIC 1005
思路:给1~100的数做一个state标记数组state[1]=1;state[i]=0; //i!=1每个数进来之后都做那个1001操作,遇到state[i]==1的情况停止,否则都将state[i]赋值为1; 需要注意的一点就是state数组一定要开的大,虽然说n最大是100,但是我开了1000的数组依然出错了。 代码:#include<iostream>using namespac原创 2017-02-06 21:42:19 · 162 阅读 · 0 评论 -
PAT BASIC 1006
思路:此题,很简单,over。 不要把BS打成bs,我就这么wa了一次。 代码#include<iostream>using namespace std;int main(){ int n, i; cin >> n; while (n >= 100) { n -= 100; cout << "B"; } while (n >= 10) {原创 2017-02-06 21:51:47 · 199 阅读 · 0 评论 -
PAT BASIC 1008
思路:这个题题意表达得可能没那么清楚,如果说要求只能开O(N)的数组,时间复杂度也是O(N),那就是一个比较有趣的题。我们可以用三次反转的方法来思考这个题。如果说我要把xy这个字符串的y字串移到x子串的左边,变成yx,我记x^T为将x反转,如果x=”abc”,那么x^T=”cba”。这样,这里就有一个比较有意思的式子了yx=(x^T y^T)^T也就是说我们只需要进行三次反转,就可以实现我的操作。时原创 2017-02-06 23:19:09 · 227 阅读 · 0 评论 -
PAT BASIC 1009
思路:这是个字符串的题,我们利用getline(cin,str); 这个函数按行把整句话都输入进来。然后用str.size() 函数得到整个字符串的长度。然后扫一遍找到每个空格的位置,之后就可以通过空格的位置把单词一个个倒序输出来。注意头尾的边界上的细节问题。 代码:#include<iostream>#include<string>using namespace std;string st原创 2017-02-06 23:39:26 · 354 阅读 · 0 评论 -
PAT BASIC 1010
思路:这个题两个点: 1.输入需要靠EOF来判断,我们的std::cin也是有返回值的,所以我们可以用来判断是否输入while(cin>>co>>ex){ //}2.如果答案没有的话,输出0 0 代码:#include<iostream>using namespace std;struct Num{ int co; int ex;}num[2017], ans[2017原创 2017-02-07 11:43:32 · 233 阅读 · 0 评论 -
PAT BASIC 1011
思路:这个题的难点就在于可能会超过int的范围,大概是希望我们能够使用一下高精度,毕竟是整数。 但是偷偷用double类型就能ac这个题。代码:[double]#include<iostream>#include<math.h>using namespace std;int main(){ double a, b, c; int n, i; cin >> n; for (i原创 2017-02-07 12:03:32 · 349 阅读 · 0 评论 -
PAT BASIC 1035
思路:代码:arthuryzc [编辑资料] [登出]主页题目集基本信息题目列表提交列表排名帮助查看源代码12345678910111213141516171819202122232425262728293031323334353637383940414243444546#include<io原创 2017-02-25 11:11:46 · 245 阅读 · 0 评论