如題
手寫加減法最重要的就是捋清進製和借位的邏輯,其實就是模擬算式運算。
//加法
a + b = a + b;
a +(
-b)= a - b;
//用減法計算加法
(-a)
+ b = b - a;
//同上
(-a)+(
-b)=
-(a + b)
;//最後新增『-』
//減法
a - b = a - b;
a -(
-b)= a + b;
//用加法計算減法
(-a)
- b =
-(a + b)
;//同上
(-a)-(
-b)= b - a;
**寫的應該有點臃腫,沒做進一步精簡。
測試了幾個自己想的測試用例是可以通過的,測試用例的格式示例:-4nm + 5nn(注意空格)或者 -4nm - 5nn
# include
# include
# include
using
namespace std;
int scale =24;
string myplus
(string& a,string& b)
;string mysub
(string& a, string& b)
;int
convert
(char x)
;//字元轉整型數字
char
rconvert
(int x)
;//整型數字轉字元,0-23 -> 0-9 & a-n
bool
bigger
(string str1, string str2)
;int
convert
(char x)
}char
rconvert
(int x)
bool
bigger
(string str1, string str2)
string myplus
(string& a, string& b)
else
if(a[0]
=='-'
|| b[0]
=='-'
)//a+(-b)=a-b, (-a)+b=b-a;
else
if(b[0]
=='-')}
else
else
res.
insert(0
,1, c);}
for(i = srt; i < lng;
++i)
if(flag !=
0) res.
insert(0
,1,rconvert
(flag));
}return res;
}string mysub
(string& a, string& b)
else
if(a[0]
=='-'
|| b[0]
=='-'
)else
if(b[0]
=='-')}
else
else
else
if(big < sma)
res.
insert(0
,1, c);}
for(i = srt; i < lng;
++i)
i =0;
while
(i < res.
length()
&& res[i]
=='0'
)++i;
if(i == res.
length()
) res =
"0";
else}}
return res;
}int
main()
cout << rest << endl;
}system
("pause");
}
之前做筆試的時候緊張得思維混亂,現在克服了筆試時的緊張情緒,可以專注想問題了。但還是過不了面試的手撕**關,emm,什麼時候再高階一下。
就在此處悄咪咪表白一下 ali 的面試官,他們都是大可愛!感恩,手動比心。
二進位制加 減法程式設計實驗
1 熟悉組合語言二進位制多位元組加法基本指令的使用方法 2 熟悉組合語言二進位制多位元組減法基本指令的使用方法 3 掌握組合語言程式設計的一般結構。1 硬體環境 微機cpu 486以上,500mb以上硬碟,32m以上記憶體 2 軟體環境 裝有masm 5.0 debug link和edit等應用程式...
位操作筆記 交換數值 使用加減法
交換數值指的是,兩個數的數值交換,例如x 1,y 2,交換之後變成x 2,y 1。通過加法和減法來實現交換數值。define swap a,b a b a b b a a b a define swap2 a,b a b a b b a b a b define swap3 a,b a b a b ...
nyoj 111 分數加減法 簡單題
時間限制 3000 ms 記憶體限制 65535 kb 難度 2 描述 編寫乙個c程式,實現兩個分數的加減法 輸入 輸入包含多行資料 每行資料是乙個字串,格式是 a boc d 其中a,b,c,d是乙個0 9的整數。o是運算子 或者 資料以eof結束 輸入資料保證合法 輸出對於輸入資料的每一行輸出兩...