字串的四則運算

2021-09-23 20:27:26 字數 1428 閱讀 9574

public string addstrings(string num1, string num2) 

if (b >= 0)

tmp /= 10;

}return sb.reverse().tostring();

}

題目二:字串相減

給定兩個字串形式的非負整數 num1 和num2 ,計算它們的差。

(預設num1比num2大)

注:不能使用任何內建 biginteger 庫, 也不能直接將輸入的字串轉換為整數形式。

思路:減法是加法的逆運算,所以基本思路與上述思路相似,只不過要注意減法中的借位的處理方式。

具體**如下:

public string substring(string num1,string num2) 

if (b >= 0)

if (tmp < amd)

else

}int i = sb.length() - 1;

while (i > 0 && sb.charat(i) == '0')

return sb.reverse().tostring().substring(sb.length() - i - 1);

}

題目三:字串相乘

給定兩個字串形式的非負整數 num1 和num2 ,計算它們的積。

注:不能使用任何內建 biginteger 庫, 也不能直接將輸入的字串轉換為整數形式。

思路:由於乘法和加法不一樣,可能會產生許多新的下標位,所以此時便想到新建乙個陣列的來儲存並運算元據,最後再把陣列作為字串返回即可。至於如何運算元組元素,核心思想與加法類似。

具體**如下:

public string multiply(string num1, string num2) 

stringbuilder sb = new stringbuilder();

int a = num1.length() - 1;

int b = num2.length() - 1;

int arr = new int[num1.length() + num2.length()];//儲存並運算元據的陣列

//兩重迴圈把每一位數因進行的乘積都遍歷到

for (int i = a; i >= 0; i--) }}

//arr[0]可以儲存兩位數字,正好把迴圈內部的0下標的缺陷彌補上

for (int i = 0; i < arr.length - 1; i++)

return sb.tostring();

}

至於字串的除法,雖然是乘法的逆運算,但是每次的單次除法都會改變被除數的大小,並且還要用到乘法與減法運算,相對前三題而言,複雜太多。有興趣的讀者可以自己嘗試,如果有會做的大佬,感謝與我分享。

字串 四則運算

題目大意 有字串表示的乙個四則運算表示式,要求計算出該表示式的正確數值。四則運算即 加減乘除 另外該表示式中的數字只能是1位 數值範圍0 9 另若有不能整除的情況,按向下取整處理,eg 8 3得出值為2。若有字串 8 7 2 9 3 計算出其值為19。2012年華為上機的乙個題目 題目思路 建立棧分...

字串的四則運算

四則運算,最常用的當然是逆波蘭方法,現將表示式由中綴表示式轉化為字尾表示式,然後再使用棧計算即可。這兩步下來,估計沒有三四百行 是實現不了的。中綴表示式轉字首字尾表示式 將中綴表示式轉換為字尾表示式的演算法思想 數字時,加入字尾表示式 運算子 a.若為 入棧 b.若為 則依次把棧中的的運算子加入字尾...

as 字串解析成四則運算

1,解析字串 a 1 b 2 c 1 2等類似字串表示式 2.步驟一是先取出 中的標記id,根據id取到對應的數值,第一步解析後狀態似 4 5 1 2 3.步驟二是根據 4 5 1 2解析成四則元算後,得到乙個結果值,return string型別。package com.zzz 計算字串中的某已單...