
PAT考试
对于PAT各级题目进行试错,将正确的代码保留。先使用C++,21年后使用python进行增补。预计22年前完成
小_黑_
希望能精通C/C++,掌握python
展开
-
B1036 跟奥巴马一起编程
C#include <stdio.h>int main(){ int n; char a; scanf("%d %c",&n,&a); int b; if(n%2==1)b=n/2+1; else b=n/2; for(int i=0; i<n ;i++) { printf("%c",a); } printf("\n"); for(int i=0; i<原创 2021-05-19 17:24:32 · 170 阅读 · 0 评论 -
B1032 挖掘机技术哪家强
C#include <stdio.h>int main(){ int A[100002] = {0}; int n,a,b; scanf("%d",&n); for(int i=0; i<n; i++) { scanf("%d%d",&a,&b); //scanf输入可以不加空格 A[a] += b; } a=0; for(int i=1; i<=n..原创 2021-05-19 15:38:24 · 218 阅读 · 0 评论 -
B1028 人口普查
C(需要用g++的编译器),过些日子用C分配内存改一下#include <stdio.h>struct Person{ char name[6]; int yy,mm,dd;}max,min,left,right,temp;bool LessEqu(Person a,Person b) //a小于b返回真{ if(a.yy != b.yy)return a.yy<=b.yy; else if(a.mm != b.mm)return a.m原创 2021-05-17 21:05:35 · 164 阅读 · 0 评论 -
B1004 成绩排名
C#include <stdio.h>struct Student{ char name[11]; char id[11]; int score;}temp, stuMax, stuMin;int main(){ int n; scanf("%d",&n); stuMax.score = 0; stuMin.score = 100; for(int i=0; i<n; i++) {原创 2021-05-16 19:21:17 · 106 阅读 · 0 评论 -
B1041 考试座位号
C#include <stdio.h>struct Student{ long long id; int examSeat;}testSeat[1000];int main(){ int n,m,seat,examSeat; long long id; scanf("%d",&n); for(int i=0; i<n; i++) { scanf("%lld %d %d",&id,&am原创 2021-05-16 17:49:17 · 111 阅读 · 0 评论 -
PAT.B1001.害死人不偿命的(3n+1)猜想
C/C++#include<stdio.h>int main(){ int a=0, count=0; scanf("%d",&a); for(; a!=1; count++) { if(a%2==0) a/=2; else a=(3*a+1)/2; } printf("%d",count); return 0;}原创 2020-07-30 21:47:35 · 151 阅读 · 0 评论 -
PAT.B1002 写出这个数
C++#include<iostream>using namespace std;string str[10] = {"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};int main(){ string s; int sum=0; cin >> s; for(int i = 0; i < s.size(); i++) { sum += (s[i原创 2021-04-05 14:47:30 · 133 阅读 · 0 评论 -
PAT.B1003 我要通过!
CC++#include <iostream>#include <map>using namespace std;void handle(int a){ int p,t; string s; for(int i = 0; i < a; i++){ cin >> s; map<char,int> m; for(int j = 0; j < s.原创 2021-04-05 22:30:37 · 105 阅读 · 0 评论 -
PAT.B1008.数组元素循环右移问题
C/C++ 尝试了输入输出库使用cstdio表示,不使用C++的cin与cout输入输出字符串。#include<cstdio>int main(){ int N=0,M=0; int a[102]={}; scanf("%d%d",&N,&M); for(int i=0; i<N; i++) scanf("%d",&a[i]); M %= N; int count=1; f..原创 2020-08-02 23:01:56 · 128 阅读 · 0 评论 -
PAT.B1010.一元多项式求导
C/C++ 输入是按降次,仅需顺输入转化输出,可实现降次输出。scanf()函数输入失败时返回值为-1。#include<cstdio>int main(){ int a=0,b=0; int flag=0; while(scanf("%d%d",&a,&b) != -1) { if(b != 0) { if(flag == 1) pri...原创 2020-08-10 11:13:08 · 100 阅读 · 0 评论 -
PAT.B1011.A+B 和 C
C/C++#include<stdio.h>int main(){ int count=0,flag=0; long a=0,b=0,c=0; scanf("%d",&count); for(; count; count--) { scanf("%ld%ld%ld",&a,&b,&c); if(a+b>c) printf("Case #%d: true\原创 2020-07-30 22:06:51 · 96 阅读 · 0 评论 -
PAT.B1012.数字分类
C/C++ 在处理A2正负相加求和时,通过加减变量flag控制正负号。当flag为0时为加号,为1时为减号。控制循环语句一开始使用两个if,即if(flag==0)A[1]+=a[i];flag++;if(flag==1)A[1]-=a[i];flag--;结果报错,将后者的if改为else if报对。原因是前者将flag已经加一,使程序又通过了后者的判断,导致了错误。#include<cstdio>int main(){ int a[1000]={},count=...原创 2020-08-03 10:46:38 · 148 阅读 · 0 评论 -
PAT.B1016.部分A+B
C/C++ 一开始打算用字符串,不太想用cin输入,又觉得C语言的字符串转字符数组麻烦,直接用了long类型。题关于0的思考,如果一串数字中有0,或者Da为0,那处理0是否会影响循环判断,是否可以先加一个对Da,Db是否为0的判断。#include<stdio.h>int main(){ int Da=0,Db=0; long a=0,b=0,Pa=0,Pb=0; scanf("%ld%d%ld%d",&a,&Da,&b,&am..原创 2020-07-31 22:43:56 · 109 阅读 · 0 评论 -
PAT.B1018.锤子剪刀布
C/C++ 用了简单直接的方法,直接求甲与乙的获胜次数#include<cstdio>int main(){ int count=0,FBwin=0,FCwin=0,FJwin=0,LBwin=0,LCwin=0,LJwin=0,Draw=0; scanf("%d",&count); char A,B; for(int i=0; i<count; i++) { getchar(); ...原创 2020-08-03 15:34:56 · 152 阅读 · 0 评论 -
PAT.B1026.程序运行时间
C/C++#include<stdio.h>int main(){ int a=0,b=0,gap=0; scanf("%d%d",&a,&b); gap = b-a+50; gap /= 100; printf("%02d:%02d:%02d",gap/3600,gap%3600/60,gap%3600%60); return 0;}原创 2020-08-01 22:16:07 · 142 阅读 · 0 评论 -
PAT.B1046.划拳
C/C++#include<stdio.h>int main(){ int a=0,Ga=0,b=0,Gb=0; int count=0; int Pa=0,Pb=0; scanf("%d",&count); for(int i=0; i<count; i++) { scanf("%d%d%d%d",&a,&Ga,&b,&Gb); int An = a+b;原创 2020-08-01 22:28:30 · 119 阅读 · 0 评论 -
PAT.A1002.A+B for Polynomials
C/C++ 兄弟们,lf和.1f要区分开。#include<cstdio>int main(){ double A[1001]={}; int exp=0,count=0; double coe=0; for(int i=0; i<2; i++) { scanf("%d",&count); for(int j=0; j<count; j++) { ...原创 2020-08-10 22:38:52 · 112 阅读 · 0 评论 -
PAT.A1042.Shuffling Machine
C/C++ 是否可以用两个数组解决这个打散牌序的问题?用了递归,从数组A[55]按T[55]随机规则排序到数组B[55],再将数组B[55]克隆到数组A[55],循环K次。输出时,将原数组数值减一,之后再加一,将13%13=0变成(13-1)%13=12+1=13,控制数值输出。#include<cstdio>int main(){ int A[55]={},B[55]={},T[55]={}; int count=0; char Le[5]={...原创 2020-08-04 23:06:18 · 150 阅读 · 0 评论 -
PAT.A1046.Shortest Distance
C/C++ 用Dis[]数组来保存每点间的距离,数组中保存的距离是的距离+[(n+1)-n]的距离。最后一点的[(n+1)-n]距离数值在Adis中已存在,在Dis[]中多余。#include<stdio.h>int main(){ int A[100001],Dis[100000]; int count=0,Adis=0; scanf("%d",&count); for(int i=1; i<=count; i++) ...原创 2020-08-05 22:41:21 · 136 阅读 · 0 评论 -
PAT.A1065 A+B and C (64bit)
C/C++ 题中限定a,b,c的范围为-到且为整型,整型中取值范围最高的类型为long long,取值范围为[-,-1],存不下,可能发生溢出。分项处理,当a<0,b<0时,a+b可能发生负溢出,影响标志位颠倒,使a+b大于0。当a<0,b>0;a>0,b<0等类似。 在if判断中,不可存在内存溢出的情况,需a+b相加保存起来。至于为什么,请大神留言。。#include<cstdio>int main(){ long...原创 2020-08-10 09:46:00 · 172 阅读 · 0 评论 -
PAT刷题(写在前面)
这个系列仅供交流与整理自己的编码风格,必有许多不足。自己远远比不上柳婼,胡凡等大神。学习PAT编程,技巧性等等请大家移步柳婼 の blog或者购买胡凡曾磊主编的算法笔记之上机训练实战指南。上面对于解题思路,算法等讲解透彻,易于理解。自己希望把编程当成一种打游戏类似的爱好,仅仅是沉浸其中,没有为什么与输赢对错。...原创 2020-07-28 22:26:48 · 216 阅读 · 0 评论 -
PAT考试报名
一.进入官网 官网地址:https://www.patest.cn/,先注册一个账号,再点击报名。二.填写报名信息(1)填写个人信息编辑个人信息(2)选择考试等级(3)选择考场(4)填写报名信息(5)缴费支付宝或者微信扫一扫三.查看报名情况...原创 2019-07-27 16:38:56 · 11444 阅读 · 3 评论