PAT
watermelon_lily
小白从0开始学编程~
记录下练习的经历(#^.^#)
展开
-
9.2 二叉树
//二叉树的存储结构struct node { typename data; int layer; node* lchild; node* rchild;}; node* root = NULL;//建立新结点node* newNode(int v) { node* Node = new node; Node->data = v; Node->lchild = Node->rchild = NULL; return Node;} //二叉树结点的查找、修改原创 2020-05-13 08:26:40 · 172 阅读 · 0 评论 -
PAT单词
insensitive例句:Note that words are case insensitive.翻译:请注意,单词不区分大小写。lexicographically词典顺序原创 2020-05-05 16:47:29 · 184 阅读 · 0 评论 -
质因子分解---《算法笔记》5.5
开一个结构体factor存放质因子和其个数,对于 int 来说,23571113171923*29已经超过 int 范围,因此fac数组开到10就行。struct factor { int x, cnt; //x为质因子,cnt为其个数}fac[10]步骤1:枚举 1 ~ 根号n 范围内的所有质因子p,判断p是否是n的因子。if(n % prime[i] == 0) { fac[...原创 2020-04-27 14:44:11 · 213 阅读 · 0 评论 -
素数模板---C语言实现
一般的写法,避免溢出//推荐写法,避免溢出 #include <math.h>bool isPrime(int n) { if(n <= 1) return false; //特例,1不是素数 int sqrt = (int)sqrt(1.0*n); //浮点数取整 for(int i=2; i<= sqrt; i++) { //遍历2~根号n if(...原创 2020-04-25 21:32:51 · 212 阅读 · 0 评论 -
分数的加减乘除运算模板--C语言实现
今天又是被大神教会做人的一天,书上的代码是没有问题的,有问题的是我的智商/(ㄒoㄒ)/~~一般建议使用模板,虽然模板的代码很长很长,但是输出时比较不容易出错代码来自 胡凡著 《算法笔记》 5.3分数的四则运算//分数的乘除法过程中可能超过int的范围,使用long long储存 typedef long long ll;//分数的表示 struct Frac{ ll up, down...原创 2020-04-25 18:37:40 · 1751 阅读 · 0 评论 -
最大公约数和最小公倍数
求解最大公约数:方法一:int gcd(int a, int b) { if(b==0) return a; else return gcd(b, a%b);}方法二:int gcd(int a, int b) { return !b ? a : gcd(b, a%b);求解最小公倍数:在最大公约数 d 的基础上,最小公倍数 c = ab/d ;但 ab 在实际计算时...原创 2020-04-24 12:27:18 · 161 阅读 · 0 评论 -
C语言--5种基本排序方法
基本排序冒泡排序选择排序插入排序归并排序递归非递归sort替换merge快速排序冒泡排序int main() { int a[10] = {3,1,4,5,6}; for(int i = 1; i <= 4; i++) { //进行n-1趟 //第i趟时从 a[0] 到 a[n-i-1] 都与它们下一个数比较 for(int j = 0; j < 5-i; j++) ...原创 2020-04-21 10:50:48 · 1053 阅读 · 0 评论 -
C语言生成随机数据
C语言中生成随机数据,需添加 stdlib.h 和 time.h 这;两个头文件。在main函数开头加上“srand((unsigned)time(NULL));”,这个语句将生成随机的种子,srand是初始化随机的种子。下面的代码是生成10个随机数。#include <stdio.h>#include <stdlib.h>#include <ti...原创 2020-04-20 11:04:53 · 1459 阅读 · 0 评论 -
算法笔记3.5---进制转换
一、将 p 进制数 x 转换为 十进制数 yint y = 0, product = 1; //product循环中会不断乘 p , 得到 1、p 、p^2...while( x != 0 ) { y = y + (x % 10) * product; // x % 10 是为了每次获取x的个位数 x /= 10; // 去掉 x 的个位 product *= p;}二、将十...原创 2020-04-15 14:00:52 · 219 阅读 · 0 评论 -
木棒切割问题(二分)---算法笔记4.5.2二分法拓展
#include <cstdio>#include <algorithm>#include <iostream> using namespace std;const int maxn = 10010;int main() { int a[maxn]; int n,k; cin >> n; cin >> k; fo...原创 2020-04-15 10:55:26 · 434 阅读 · 3 评论 -
二分搜索BinarySearch(代码模板)
BinarySearch 代码模板解决“寻找有序序列第一个满足某条件的元素的位置”问题的固定模板1.二分区间为左闭右闭的[left,right],初值必须能够覆盖解的所有可能取值int solve(int A[], int left, int right, int x) { int mid; while(left < right) { mid = (left + right) ...原创 2020-04-14 15:06:00 · 270 阅读 · 0 评论