.寫乙個函式,實現大整數的相加,相減。
大整數:即沒有任何資料型別可以儲存到的資料 */
#include
#include
char result[
100]=;
int l1,l2;
int flag =0;
// 進製/借位標誌
int i,j,k;
//加法
void
num_add
(char
* num1,
char
* num2)
k++;}
for(
;i >=
0;i--
) k++;}
}else
if(l1 == l2)
k++;}
}else
//l1 < l2
k++;}
for(
;j >=
0;j--
) k++;}
}for
(k = k-
1;k >=
0;k--
)puts(""
);}//減法
void
num_subtraction
(char
* num1,
char
* num2)
result[k]
=(num1[i]
-'0'
+ flag)
-(num2[j]
-'0');
flag =0;
k++;}
for(
;i >=
0;i--)}
else
if(l1 == l2)
result[k]
=(num1[j]
-'0'
)+ flag -
(num2[j]
-'0');
flag =0;
k++;}
for(k = k;k >=
0;k--
)puts(""
);return;}
if(num1[i]
< num2[i]
)//陣列num1表示的數 < 陣列num2表示的數
result[k]
=(num2[j]
-'0'
)+ flag -
(num1[j]
-'0');
flag =0;
k++;}
printf
("-");
for(k = k;k >=
0;k--
)puts(""
);return;}
}printf
("0\n");
//陣列num1表示的數 = 陣列num2表示的數
return;}
else
//l1 < l2
result[k]
=(num2[j]
-'0'
+ flag)
-(num1[i]
-'0');
flag =0;
k++;}
for(
;j >=
0;j--
)printf
("-");
}for
(k = k -
1;k >=
0;k--
)puts(""
);}int
main()
;char b[
100]=;
char ch;
scanf
("%s %c %s"
,a,&ch,b);if
(ch ==
'+')
if(ch ==
'-')
return0;
}
大數相加減,大數相乘(減法還沒弄)
415.字串相加 給定兩個字串形式的非負整數 num1 和num2 計算它們的和。方法1 用字串的解法,從低位開始對應相加,然後設定乙個carry變數表示進製。每次得到的插入到現在結果開頭就可以了。class solution int i num1.size 1,j num2.size 1 int ...
大數相加 減 乘 除 取餘 模板
string sum string s1,string s2 大數相加 int i,j for i s1.length 1,j s2.length 1 i 0 i j return s1 string sub string s1,string s2 大數相減 for int i len 1 i 0 ...
時間相加減函式
時間減1函式 create function f dateadd date datetime,datestr varchar 23 returns datetime asbegin declare bz int,s varchar 12 i int if datestr is null or dat...