大整数运算--算法笔记

大整数的存储:

用数组:整数的高位存在数组的高位 ,低位存在数组的低位。

struct bign{
    int d[1000];
    int len;

    bign(){
        memset(d,0,sizeof(d));
        len=0;
    }
};
//为了方便获取大整数的长度,定义len变量来记录长度。

 输入大整数的时候,一般先用字符串读入,然后再把字符串另存为bign结构体。

bign charge(char str[]){
    bign a;
    a.len = strlen(str);//bign的长度就是字符串的长度
    for(int i = 0;i

判断两个bign的大小也很简单,先判断两者len的大小。如果不相等,len值大的为大。如果不相等,就从高位向低位比较,直到出现某一位不等,就可以判断两个数的大小。

int compare(bign a,bign b){
    if(a.len>b.len) return 1;//a大
    else if(a.len=0;i--){
            if(a.d[i]>b.d[i]) return  1;//只要有以为a大,则a大
            else if(a.d[i]

大整数的四则运算

  • 高精度加法
bign add(bign a,bign b){
	bign c;
	int carry = 0;//进位
	for(int i = 0;i

 

你可能感兴趣的:(基础学习)