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 計算字串中的某已單...