pat笔记
小米的愤怒
这个作者很懒,什么都没留下…
展开
-
高精度除法
#include<iostream> #include<cstring> #include<cmath> using namespace std; struct bign{ int a[10030]; int len; bign(){ memset(a,0,sizeof(a)); len=0; } }; bign reve(string a)//对输入的数转化为int型,并进行反转运算 { bign...原创 2020-08-05 16:38:03 · 109 阅读 · 0 评论 -
2020-08-05
#include<iostream> #include<cstring> #include<cmath> using namespace std; struct bign{ int a[10030]; int len; bign(){ memset(a,0,sizeof(a)); len=0; } }; bign reve(string a)//对输入的数转化为int型,并进行反转运算 { bign...原创 2020-08-05 16:13:48 · 69 阅读 · 0 评论 -
高精度减法
#include<iostream> #include<cstring> #include<cmath> using namespace std; struct bign{ int a[10030]; int len; bign(){ memset(a,0,sizeof(a)); len=0; } }; bign reve(string a)//对输入的数转化为int型,并进行反转运算 { bign...原创 2020-08-05 15:55:57 · 75 阅读 · 0 评论 -
高精度加法
#include<iostream> #include<cstring> #include<cmath> using namespace std; struct bign{ int a[10030]; int len; bign(){ memset(a,0,sizeof(a)); len=0; } }; bign reve(string a)//对输入的数转化为int型,并进行反转运算 { bign...原创 2020-08-05 15:39:51 · 75 阅读 · 0 评论 -
质因子分解(不确定)
struct fenjie{ int zhishu,number; }; fenjie *fen(int n) { struct fenjie a[13]; for(int i=2;i<13;i++) { int count=0; if(primemap[i]==0) if(n%i==0){ a[count].zhishu=i; a[count].number...原创 2020-08-05 15:08:23 · 76 阅读 · 0 评论 -
素数判断 埃氏筛法
普通方法: bool isprime(int a) { if(a<=1) return false; int k=(int)sqrt(1.0*a); for(int i=2;i<=k;i++){ if(a%i==0) return false; } else return true; } 埃氏筛法(获取素数表) int MAX=__; int hashtable[MAX]={0}; itn pr...原创 2020-08-05 14:38:51 · 154 阅读 · 0 评论 -
分数的表示与化简
struct Fen{ int up,down; }; Fen huajian(Fen a) { if(a.down<0){ a.down=-a.down; a.up=-a.up; } if(a.up==0) a.down==1; else{ int d=gcd(abs(a.up),abs(a.down); //d为分子 分母的公约数 a.down/=d; ...原创 2020-08-05 14:11:49 · 180 阅读 · 0 评论 -
随机选择算法
int randpartition(int a[],int left,int right) { int p=round(1.0*rand()/RAND_MAX*(left-right)+left); swap(a[left],a[p]); int temp=a[left]; while(left<right) { while(left<right&&a[right]<temp) right++; ...原创 2020-07-28 10:04:57 · 170 阅读 · 0 评论 -
快速排序
int paixu(int a[],int left,int right){ int temp=a[left]; while(left<right) { while(left<right&&a[left]<temp) left++; a[right]=a[left]; while(left<right&&a[right]>=temp) right--; ...原创 2020-07-28 09:47:55 · 56 阅读 · 0 评论 -
归并排序
//递归实现 void merge(int a[],int l1,int r1,int l2,int r2) { int i=l1,j=l2,index=0; while(left<right) { while(left<rifht&&a[i]<a[j]) temp[index++]=a[i++]; while(a[i]>=a[j]) temp[index++]=a[j++]...原创 2020-07-28 09:31:59 · 82 阅读 · 0 评论 -
快速幂
给定三个正整数a,b,m求a的b次方的m的余数 //递归写法 int quick(int a,int b,int m) { if(b==0) return 1; if(b%2!=0) return a*quick(a,b-1,m)%m; else{ int k=quick(a,b/2,m); return k*k%m; } } //迭代写法 int quick(int...原创 2020-07-28 09:12:37 · 67 阅读 · 0 评论 -
二分
二分查找 (0 n-1) int find(int a[],int left,int right,int m) { while(left<=right) { int mid=(right+left)/2; if(a[mid]==m) return mid; ` else if(a[mid]<m) left=mid+1; ...原创 2020-07-28 08:57:49 · 85 阅读 · 0 评论