C 大數問題

2022-08-23 14:21:18 字數 1940 閱讀 5353

語法:add(char a,char b,char s);

引數:a:被加數,用字串表示,位數不限

b:加數,用字串表示,位數不限

s:結果,用字串表示

返回值:null

注意: 

空間複雜度為 o(n^2)

需要 string.h

源程式:  

void add(char a,char b,char back)

else up=0;

c[k++]=z+'0';

i--;j--;

}if(up) c[k++]='1';

i=0;

c[k]='\0';

for(k-=1;k>=0;k--)

back[i++]=c[k];

back[i]='\0';

}

語法:sub(char s1,char s2,char t);

引數:s1:被減數,用字串表示,位數不限

s2:減數,用字串表示,位數不限

t:結果,用字串表示

返回值:null

注意: 

預設s1>=s2,程式未處理負數情況

需要 string.h

源程式: 

void sub(char s1,char s2,char t)

}k=l1;

while(s1[k]<0)

while(l1>=0)

loop:

if (t[0]=='0')

else

}if (flag) else l=i;

for (i=0;i

語法:mult(char a,char b,char s);

引數:a:被乘數,用字串表示,位數不限

b:乘數,用字串表示,位數不限

t:結果,用字串表示

返回值:null

注意: 

空間複雜度為 o(n^2)

需要 string.h

源程式:  

void mult(char a,char b,char s)

,flag=0;

char result[65];

alen=strlen(a);blen=strlen(b);

for (i=0;i=0;i--)

for (i=blen-2;i>=0;i--)

if (sum!=0)

for (i=0;i=0;i--) s[i]=result[k-1-i];

s[k]='\0';

while(1)

}

語法:int result=factorial(int n);

引數:n:n 的階乘

返回值:階乘結果的位數

注意: 

本程式直接輸出n!的結果,需要返回結果請保留long a

需要 math.h

源程式:  

int factorial(int n)

if(c>0)

} w=m*4+log10(a[m])+1;

printf("\n%ld",a[m]);

for(i=m-1;i>=0;i--) printf("%4.4ld",a[i]);

return w;

}

語法:int compare(char a,char b);

引數: 

a:被比較數,用字串表示,位數不限

b:比較數,用字串表示,位數不限

返回值: 0    a1    a>b

2    a=b

源程式: 

int compare(char a, char b)  

return 2;

}

C 大數問題

語法 add char a,char b,char s 引數 a 被加數,用字串表示,位數不限 b 加數,用字串表示,位數不限 s 結果,用字串表示 返回值 null 注意 空間複雜度為 o n 2 需要 string.h 源程式 void add char a,char b,char back e...

C 大數問題

此文參考自 大數相加 1 從結尾開始每位相加 2 兩個整數長度不相等 肯定有乙個已經加完了,再把沒有加完的加上去 3 最高位有進製,要再進一位 4 結果字串逆序 大數相乘 分析 12 34 乘數 12 被乘數 34 1 先把乘數列出來,第i行列左起第i位數,列n次 n為乘數的位數 第二行起每次右移一...

大數相加問題c 做法

大數相加問題c 做法 描述對您來說,我有乙個非常簡單的問題。給定兩個整數a和b,計算a b的總和。輸入由兩個正整數a和b組成。請注意,這些整數非常大,這意味著您不應使用32位整數對其進行處理。您可以假設每個整數的長度不超過1000。輸出輸出sum,sum表示a b的結果。輸入樣例 1 1 21122...