PAT - 数学类总结

PAT 甲级 总结 —— 初级篇 PAT 甲级 总结 —— 初级篇 该部分内容源于笔者对于PAT的实际总结,总共分为初级篇、中级篇、高级篇三部分,本次初级篇部分设计PAT中常见的数学类以及二叉树类题型的总结 阅读详情

PAT A 1069 The Black Hole of Numbers (20 分) 

学习点:

1.整型数组和整数的相互转换,整型数组排序实现倒序

2. %04d进行输出,实现缺0补0.

#include<cstdio>
#include<algorithm>
using namespace std;

bool cmp(int a, int b){
    return a > b;
}

void to_array(int n, int number[]){
    for(int i = 0; i < 4; i++){//倒序存进去的
        number[i] = n % 10;
        n /= 10;
    }
}

int to_number(int number[]){
    int n= 0;
    for(int i = 0 ;i < 4; i++){
        n = n * 10 + number[i];
    }

    return n;
}

int main(){
    int n, min, max;
    scanf("%d", &n);
    int number[5];
    while(1){
        to_array(n, number);
        sort(number, number + 4);
        min = to_number(number);
        sort(number, number+4, cmp);
        max = to_number(number);
        n = max - min;
        printf("%04d - %04d = %04d\n", max, min , n);
        if(n == 0 || n == 6174) break;
    }

    return 0;
}

 

PAT B 1013 数素数 (20 分)

注意点:

1. is_prime数组要取得足够大, 1e7

2.输出格式限制,行末只能输出'\n',不能输出空格;最后一行,不能输出多余的空格

3.结束循环,可以用 break

4.数组初始化为同一个值的时候,只能用{0}, {1}的话只会给第一个值赋值。

#include<cstdio>
int prime[10010], pNum = 0;
bool is_prime[10000010] = {0}; // 0 is prime; 1 is not prime
void Find_prime(int N) {
	//int count = 0;
	for (int i = 2; pNum < N; i++) {
		if (is_prime[i] == 0 ) {
			prime[pNum++] = i;
			for (int j = i + i; j < N * 100; j += i)
				is_prime[j] = true;
		}

	}
}

int main() {
	int M, N;
	scanf("%d%d", &M, &N);
	Find_prime(N);
	for (int i = 0; i < N; i++) {
		if (i >= M - 1) {
			printf("%d", prime[i]);
			if ((i - M + 1) % 10 == 9)
				printf("\n");
			else if( i != N - 1)
				printf(" ");
		}
	}


}

PAT A 1059 Prime Factors (25 分)

思路,首先建立素数表,然后对N进行不断的除法,在除的过程中不断地记录。

1. 因为分解直接从2开始的,要特判1=1。

2. long int 的类型其实就是int,在题目中表示冗长了。

3.定义 数组结构体 factor{}的思想很重要。

4.在sqrt(n)的范围内寻找素数,然后可能会留下一个比sqr大的,直接赋值即可,为什么我也不知道。

#include<cstdio>
#include<cmath>

const int maxn = 100010;
int prime[maxn], pNum;
bool is_prime[maxn] = { 0 }; // zero is prime, 1 is not prime

void find_prime(long long max) {
	double sqrt_max = sqrt(1.0 * max);
	for (int i = 2; i < sqrt_max; i++) {
		if (is_prime[i] == 0) {
			prime[pNum++] = i;
			for (int j = i + i; j < sqrt_max; j += i)
				is_prime[j] = 1;
		}
	}
}

struct factor {
	int x;
	int cnt;
}fac[20];

int main() {
	long long N;
	scanf("%lld", &N);
    if( N == 1){
        printf("1=1");
    }
    else{
    printf("%lld=", N);
	find_prime(N);
	int facNum = 0;
	for (int i = 0; i < pNum; i++)
	{
		if (N % prime[i] == 0) {
			fac[facNum].x = prime[i];
			fac[facNum].cnt = 0;
			while (N % prime[i] == 0) {
				fac[facNum].cnt++;
				N /= prime[i];
			}
			facNum++;
		}
        if(N == 1)
            break;
	}
	if (N != 1) {
		fac[facNum].x = N;
		fac[facNum].cnt = 1;
		facNum++;
	}
	
	for (int i = 0; i < facNum; i++) {
		if (fac[i].cnt > 1)
		{
			printf("%d^%d", fac[i].x, fac[i].cnt);
		}
		else if (fac[i].cnt == 1) {
			printf("%d", fac[i].x);
		}
		if (i != facNum - 1)
			printf("*");
	}
    }
	
	return 0;
}

 

数列的片段和:从暴力枚举到O(N)数学推导与精度控制 在算法刷题过程中,面对大规模数据时,暴力枚举往往因时间复杂度过高而失效。以经典题目“数列的片段和”为例,当N达到10万量级,O(N²)的双重循环必然超时,此时需要转换思路,从“模拟所有片段”转向“统计每个元素的贡献次数”。通过位置关系可得公式:第i个元素被包含的次数为(i+1)×(N-i),从而将问题降为O(N)一次遍历。同时,累加结果可能达到10^15级别,浮点精度成为关键,使用long double可避免误差导致答案错误。这一方法不仅适用于PAT等在线评测系统,也是处理连续子数组求和、区间统计等工程问题 阅读详情

相关推荐

浙江大学PAT编程能力测试C语言实战题解集

说到算法比赛,很多人第一反应是Python写起来快。但现实很骨感——90%以上的正式比赛和企业招聘笔试,首选语言还是C/C++。为啥?答案就藏在三个字里:快、准、狠!真正的高手,从来不靠死记硬背模板取胜。他们懂得将每一次解题经历转化为可追溯的知识资产,通过写作反向逼迫自己深入思考,最终形成一套属于自己的方法论体系。当你开始用GitHub Pages搭建题解博客时,就已经走在了大多数人前面。而一旦接入CI/CD自动化测试,你就不再是单纯的“做题家”,而是具备工程化思维的技术实践者。

weixin_32099703的博客 655

pat甲级什么水平_PAT甲级带我通关编程与数据结构新手村

写在前面半年前我努力啃下了《算法第4版》,作为非科班的学生,刚学完数据结构与算法,我同样也在思考如何巩固提高。最终我选择了适合自己的几个方式,PAT甲级正是其中之一。大概讲一下PAT甲级是啥。PAT(Programming Ability Test)是浙江大学组织的编程考试,分为乙级、甲级和顶级。浙大计算机学院和软件学院可用甲级、顶级成绩作为考研机试成绩,部分企业可为成绩优异者免除招聘笔试,具体情...

weixin_39740283的博客 4554

PAT乙级72题能力训练路径与本地验证框架

PAT乙级考试本质是C语言工程能力的标准化测评,核心在于输入输出鲁棒性、数学边界控制、字符串状态机等基础编程能力。其判题机制严格遵循POSIX标准,对空格、换行、格式精度和运行时长高度敏感,远超一般在线OJ。掌握这些能力需脱离‘刷题’思维,转向可验证、可追踪的闭环训练:通过构建本地diff+timeout验证环境,结合72道高频真题映射到I/O鲁棒性、多关键字排序、千位分隔符处理等具体子能力项,并用GDB、valgrind、ASan等工具定位测试点3类典型失败。本文即围绕这一能力跃迁链,提供从环境搭建、分类

weixin_33824385的博客 205

PAT 计算机程序设计能力考试

【官方简介】         计算机程序设计能力考试(Programming Ability Test,简称PAT)旨在通过统一组织的在线考试及自动评测方法客观地评判考生的算法设计与程序设计实现能力,科学的评价计算机程序设计人才,为企业选拔人才提供参考标准。         考试遵循统一考试大纲、统一考试命题、统一考试评分标准、统一颁发证书的原则,由考试中心负责考试的组织、日常管理和具体实

David_Jett 2万+

PAT:浙大pat题目,js版,前端小伙伴们,算法刷起来,http

pat 浙大pat题目,js版,前端小伙伴们,算法刷起来 ##

斗罗大陆叙事体系与战斗系统设计解析

在文学创作与游戏设计中,世界观构建和战斗系统设计是两大核心技术要素。世界观作为故事发生的背景框架,需要融合东西方文化元素并建立量化标准,如《斗罗大陆》中武魂觉醒与魂环等级体系。战斗系统则需突破简单数值对抗,发展出武魂特性、魂技组合与环境互动的三维体系,其中魂导器技术的引入展现了科技与魔法的创新融合。这些设计原理在RPG游戏开发、网络文学创作等领域具有广泛应用价值,特别是对需要长期运营的IP作品,完善的系统设定能有效支撑剧情延展与商业化开发。本文以现象级作品为例,剖析其武魂拟态理论和魂师工业化构思如何成就经典

weixin_29291069的博客 250

浙江大学计算机程序设计能力考试(PAT)简介

计算机程序设计能力考试(Programming Ability Test,简称PAT)旨在通过统一组织的在线考试及自动评测方法客观地评判考生的算法设计与程序设计实现能力,科学地评价计算机程序设计人才,为企业选拔人才提供参考标准。目前PAT已成为IT界的标准化能力测试,得到包括Google中国、Microsoft、雅虎、网易、百度、腾讯等在内的百余家大中小型各级企业的认可和支持。同时,从19考研起,...

日沉云起的博客 2万+

从D触发器到8位SAR ADC:Cadence Virtuoso完整设计仿真指南

逐次逼近寄存器型模数转换器(SAR ADC)是混合信号集成电路中的基础架构,其核心是一个由D触发器构成的时序状态机。在数字电路设计中,D触发器常用于数据锁存、移位寄存和时钟分频,而在SAR ADC中,它恰好承担了节拍发生与结果寄存的双重角色。理解D触发器的工作机制,是掌握逐次逼近逻辑的关键前提。工程实践中,借助Cadence Virtuoso平台,可以从门级搭建SAR逻辑,并结合动态比较器与电荷重分配电容DAC,完成从原理图到瞬态仿真的全流程验证。通过FFT分析计算SNDR与ENOB,能够量化评估ADC的动

weixin_29178069的博客 285

NAT、PAT的原理及配置

目录 一、NAT 1.私有地址 2.NAT工作原理 3.NAT功能 4.NAT配置命令 5.ACL访问控制表 二、PAT 1.PAT的作用: 2.PAT的类型: 3.NAPT的配置 4.Easy IP的配置 ​5.PAT端口多路复用 一、NAT NAT又称为网络地址转换,用于实现私有网络和共有网络之间的互访 1.私有地址 私有网络地址是指內部网络或主机的IP地址,IANA(互联网数字分配机构)规定将下列的IP地址保留用作私网地址不在Internet上被分配,可在一个单

weixin_67470255的博客 5323

通信原理与MATLAB(八):2PSK的调制解调

通信原理和MATLAB

菜yuan~的博客 3万+

【项目实战】基于STM32单片机的智能小车设计(有代码)

【1】背景意义 近些年随着国民生活水平的提升,以小车为载体的轮式机器人进入了我们的生活,尤其是在一些布线复杂困难的安全生活区和需要监控的施工作业场合都必须依赖轮式机器人的视频监控技术。因此,基于嵌入式技术的无线通信视频监控轮式机器人应运而生。由于它们与人类工作相比具有成本低廉、安全稳定的优点,目前已经在许多危险作业以及工业场合得到了广泛应用而且轮式机器人不需要像人那样采取过多的保护措施,因此轮式机...

ShawnWang1994的博客 13万+

PAT考试报名

一.进入官网 官网地址:https://www.patest.cn/,先注册一个账号,再点击报名。 二.填写报名信息 (1)填写个人信息 编辑个人信息 (2)选择考试等级 (3)选择考场 (4)填写报名信息 (5)缴费 支付宝或者微信扫一扫 三.查看报名情况 ...

xioy98的博客 1万+

华为云Stack扩容实战:从CMDB配置到计算节点增减容,一份避坑指南

本文详细解析华为云Stack扩容实战,从CMDB配置到计算节点增减容的全流程操作指南。通过典型场景案例和避坑建议,帮助企业高效管理计算资源扩容与减容,确保业务连续性。特别针对华为云Stack的弹性扩容能力提供专业指导,涵盖存储、网络及自动化工具链的配合使用。

weixin_30591551的博客 479

PAT考试总结

pat试题总结 遍历问题的总结 dfs中,如果是有环的图,要设置visited数组防止绕圈,同时在dfs函数退出前要将visited数组相应设置为false,否则其他路径就不能遍历该结点; 在问题中,如果要求“从一个序列中选取若干个元素来满足条件”,可以考虑dfs,如1103 Integer Factorization (30分)和7-1 Forever (20分); 字符串处理总结 字符串处理中,注意利用sscanf,可以按照格式读取字符串中的数字,如 sscanf(s, “The root is

void 659

华为OD机试真题 新系统2026-04-08 Python&JS 实现【直捣黄龙】

小王在玩一款叫做直捣黄龙的小游戏,在该游戏中他需要从入口位置进入敌营,绕过哨兵的层层封锁,达到敌军司令部实施斩首行动。 敌军阵营是一个n*n的矩阵,入口在坐标(0,n/2),敌军司令部在坐标(n-1,n/2),每个哨兵警戒以自己为中心的9宫格,一旦被哨兵发现则行动失败。

MISAYAONE的博客 590

LDO 上电过冲的根因

LDO在上电瞬间常出现短时过冲电压(3.4V-3.5V),可能损坏敏感器件。其根本原因是:低

硬核科技 296

pat乙级题目答案整合

准备这个暑假好好的刷一刷pat的乙级题目提高编写代码的能力,目前这个是一个集合贴,会按照题目类型持续更新 简单模拟类: 即完全依据题目描述来进行代码的编写无需复杂算法 1001 害死人不偿命的(3n+1)猜想 1006 换个格式输出整数 1011 A+B 和 C 1032 挖掘机技术哪家强 1036 跟奥巴马一起编程 1056 组合数的和 数学问...

weixin_30329623的博客 308

PMSM控制系列文章进阶-8.电流、角度采样及其同步

摘要:本文分析了高低压电机在电流和角度采样中的不同方案选择。高压电机采用霍尔传感器和旋变进行隔离采样,低压电机则使用shunt电阻和磁编码器以降低成本。重点讨论了采样时间补偿问题:电流采样需与PWM周期同步,角度采样需考虑传感器延迟;通过park变换和反park变换时需补偿采样与发波的时间差,提出了通过测试母线电流或Ud变化来验证补偿时间准确性的方法。文中还介绍了对传感器信号进行软解码处理的方法,包括消除直流偏置、增益误差和正交误差等参数的自学习过程。

weixin_41343701的博客 614

别光刷题了!用PAT乙级这10道真题,手把手教你养成“算法思维”

本文通过10道PAT乙级真题,系统讲解如何构建算法思维框架,包括问题识别、模型抽象和编码实现的全流程方法论。重点解析霍格沃茨找零钱、打印沙漏等经典题目,帮助读者从单纯刷题转向培养真正的解题能力,掌握算法思维的核心技巧。

weixin_30617695的博客 508

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

PAT乙级备考别瞎刷!按这6类知识点(附1102题前完整题号)专项突破效率翻倍

本文详细介绍了PAT乙级考试的高效备考策略,通过将90道真题按6类知识点(字符串处理、STL容器应用、哈希技术等)分类训练,帮助考生避免盲目刷题。文章提供了具体的知识点分类、典型题号及训练方法,并推荐三阶段训练法和每日计划,显著提升备考效率。

weixin_30687051的博客 305

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

【PAT】1012. The Best Rank (25)

题目链接: http://pat.zju.edu.cn/contests/pat-a-practise/1012 题目描述: To evaluate the performance of our first year CS majored students, we consider their grades of three courses only: C - C Programm

此去经年 3061

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

从打印沙漏到编程思维:数学建模与图形输出题精解

图形输出是编程入门与算法竞赛中的经典题型,其核心在于将视觉规律转化为精确的数学模型。通过分析每行符号数与空格数的变化,通常可归纳为等差数列或对称序列,进而推导出关键参数的计算公式。掌握这一数学建模能力,不仅能高效解决如“打印沙漏”、“打印菱形”等具体问题,更能培养严谨的计算思维和边界处理意识,提升将抽象问题转化为可执行代码的工程实践能力。本文以PAT乙级和天梯赛高频考题“打印沙漏”为例,深入剖析其数学原理与代码实现,帮助读者举一反三,应对各类图形输出挑战。

weixin_29253711的博客 282

PAT乙级1122题解析:算法设计与优化技巧

算法设计是编程能力的核心,特别是在处理数学运算和逻辑判断问题时。通过分析数字特性(如素数、快乐数等)和应用基础数据结构,可以高效解决编程竞赛中的典型题目。在实际工程中,这类算法优化技巧能显著提升程序性能,尤其在处理大规模数据或需要快速响应的场景下。本文以PAT乙级1122题为例,探讨了从问题抽象到代码实现的完整流程,重点介绍了模拟法、数学优化等实用方法,并分享了输入输出处理、内存管理等实战经验,帮助开发者提升算法解题能力。

weixin_29196891的博客 175

PAT乙级1103题解析:数字组合与立方和算法

在算法编程中,数字处理与数学逻辑的结合是常见考察点。通过取模运算和循环结构可以实现数字的逐位分解,而立方和等数学运算则用于验证特定条件。这类技术在数据校验、密码学等领域有广泛应用,特别是在需要验证数字特性的场景下。以PAT乙级1103题为例,题目要求找出满足A³+B³=N的数字组合,这既考察了基础编程能力,也涉及算法优化技巧。解题时采用暴力枚举配合数学范围缩减(如立方根限定搜索空间),能有效平衡代码简洁性与执行效率。类似思路还可应用于LeetCode等编程题库的数字拆分问题,是算法入门者的必备技能。

weixin_32075843的博客 234

PAT乙级1074题解:自定义进制加法实现与优化

进制转换是计算机科学中的基础概念,指将数字在不同基数系统间转换的技术。其核心原理是通过位权展开与模运算实现数值表示转换,在数据存储、加密算法等领域有广泛应用。本文以PAT乙级1074题为例,详解如何实现支持每位独立进制的加法运算,涉及字符串处理、动态进位控制等关键技术。通过分析特殊进制(如0代表10进制)的处理、前导零优化等典型场景,展示了算法在OJ题目与工程实践中的通用解法。该案例对理解底层数值计算、提升字符串操作能力具有实践价值。

weixin_33290540的博客 202

PAT甲级1067题解:用置换环模型解决Sort with Swap(0, i)最少交换次数问题

置换环是图论中描述排列循环结构的基础概念,其核心原理是将排列分解为若干不相交的循环节。在算法工程实践中,置换环常用于求解最少交换次数类问题,通过分析环的长度及是否包含特定元素,可推导出最优交换策略。该模型在排序优化、序列重排、面试算法题等场景中具有广泛技术价值。以PAT甲级1067题为例,题目要求仅用数字0与其它元素交换实现升序排列,通过识别包含0与不包含0的置换环,分别按L-1和L+1计算交换代价,即可高效求解最少交换次数,避免贪心模拟的陷阱。

weixin_33391446的博客 309
上一篇: 1101 Quick Sort (25 分)- PAT甲级真题-多种算法及分析
下一篇: PAT - 栈、队列、链表
DedicateToAI
博客等级 码龄9年 6粉丝 90原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值