PAT乙级
在刷pat乙级时的一些心得
天才小熊猫喜欢竹子
这个作者很懒,什么都没留下…
展开
-
1001 害死人不偿命的(3n+1)猜想
1001 害死人不偿命的(3n+1)猜想 (15 分)很简单的一道题,没什么好说的。#include<cstdio>using namespace std;int main(){ int cnt=0; int n; scanf("%d",&n); while(n!=1) { if(n%2==0) n=n/2; else n=(3*n+1)/2;原创 2021-04-15 20:05:21 · 59 阅读 · 0 评论 -
1008 数组元素循环右移问题
1008 数组元素循环右移问题 (20 分)本题的题目中有诸多限制,但考试中只验证结果是否正确,因此我们可以不用管这些限制,直接输出答案。需要注意的是:1.本题中M不一定小于N,但由于数组向右移动X位和移动X+M位是等价的,因此可以令M=M%N来进行简化。2.题目要求序列结尾不能有多余空格,因此可以用count来记录已输出的数字的个数。当count==N时说明此时已经到了序列末尾,不应该再输出空格。题解如下:#include<cstdio>using namespace std;原创 2021-04-13 15:01:31 · 81 阅读 · 1 评论 -
1011 A+B 和 C
1011 A+B 和 C需要注意的是,题目中给出的范围是10^10,这个范围很明显超过了int,因此应该用long long来存放A和B。代码如下#include<cstdio>using namespace std;int main(){ int T; scanf("%d",&T); for(int i=1 ; i<=T ; i++) { long long A,B,C; scanf("%lld%lld原创 2021-04-15 20:11:17 · 94 阅读 · 0 评论 -
1012 数字分类
1012 数字分类 (20 分)这道题可以设置两个数组A[5]和cnt[5],cnt用于计数。当输入的值满足要求时则对应的cnt++。需要注意的是cnt数组为double型,这样在计算A[4]时比较方便。代码如下:#include<cstdio>using namespace std;int main(){ int A[5+1] = {0}; double cnt[5+1] = {0}; int N , f=1 ; scanf("%d",&原创 2021-04-13 16:20:15 · 58 阅读 · 0 评论 -
1018 锤子剪刀布
1018 锤子剪刀布 (20 分)最容易想到的方法是使用大量的if else 语句,列举出所有可能的情况。这种方法最容易想到,但是也最繁琐。代码如下#include<cstdio>#include<algorithm>using namespace std;int main(){ int n; int max1,max2; char a,b; int A1[3]={0},B1[3]={0};//0代表赢,1代表平,2代表输原创 2021-04-15 19:59:32 · 59 阅读 · 0 评论