語法: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 大數問題
此文參考自 大數相加 1 從結尾開始每位相加 2 兩個整數長度不相等 肯定有乙個已經加完了,再把沒有加完的加上去 3 最高位有進製,要再進一位 4 結果字串逆序 大數相乘 分析 12 34 乘數 12 被乘數 34 1 先把乘數列出來,第i行列左起第i位數,列n次 n為乘數的位數 第二行起每次右移一...
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 做法
大數相加問題c 做法 描述對您來說,我有乙個非常簡單的問題。給定兩個整數a和b,計算a b的總和。輸入由兩個正整數a和b組成。請注意,這些整數非常大,這意味著您不應使用32位整數對其進行處理。您可以假設每個整數的長度不超過1000。輸出輸出sum,sum表示a b的結果。輸入樣例 1 1 21122...