刷題筆記 24進製加減法函式

2021-10-06 04:33:07 字數 2215 閱讀 6959

如題

手寫加減法最重要的就是捋清進製和借位的邏輯,其實就是模擬算式運算。

//加法

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結束 輸入資料保證合法 輸出對於輸入資料的每一行輸出兩...