2014年9月6日搞到这边吧,初级的刷完了,先停停,中级篇看了下目录,以前都刷过,只是没有系统的刷,准备隔几天再刷,看看java面试宝典去。预计花费10天搞完。囧~
/*
*/
#include<iostream>
using namespace std;
/*
gcd辗转相除法,欧几里得算法
求解直线上的点,切割最小正方形
*/
int gcd(int x,int y){
return y==0?x:gcd(y,x%y);
}
/*
extgcd,扩展欧几里得算法
求解二元一次方程整数解 ax+by=c
返回函数=号右边的解c
囧:
int a声明一个int类型,名称叫a
int* a 声明一个int指针类型,名称叫a
int& a 声明一个int引用类型,名称叫a
*/
int extgcd(int a,int b,int& x,int& y){
int d=a;
if(b!=0){
d=extgcd(b,a%b,y,x);
y-=(a/b)*x;
} else{
x=1;
y=0;
}
return d;
}
/*
快速幂运算
x^n mod m
*/
typedef long long ll;
ll mod_pow(ll x,ll n,ll m){
int res=1;
while(n>0){
if(n&1) res=res*x%m; //如果n为奇数,原公式乘上x^(2^1),则res*x%m
x=x*x%m;
n>>=1; //n/2
}
return res;
}
/*
大整数取模
n mod m
1234=(((1*10+2)*10+3)*1