由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 谁能给贴个大数相减的java code 吗?
相关主题
AMAZON onsite 3月面经星期一福利:某公司店面题
Airbnb到底招什么样的人?问个Zenefits电面题目,他家好难。。。
请教最近onsite的一道面试题:大数相加Google 电面
Word ladder II 感觉算法已经是最优了,但是过不了大测试,能不能帮忙看看?问一道uber onsite题目
收到G家拒信,发面经请教如何解决整数的溢出问题
发个Twitter的面试题有人做facebook的first or last这道题吗?
50行code能解决addbinary 问题么忐忑的G电面
Reverse Words in a String大整数相乘谁贴个bug free的code
相关话题的讨论汇总
话题: string话题: alen话题: int话题: blen话题: minus
进入JobHunting版参与讨论
1 (共1页)
k*********6
发帖数: 738
1
多谢!
w*******s
发帖数: 138
2
import java.math.BigInteger
BigInteger result = new BigInteger("123").subtract(new BigInteger("456"));

【在 k*********6 的大作中提到】
: 多谢!
p*****2
发帖数: 21240
3
#(apply + %&)
可以支持多个数的相加
l*n
发帖数: 529
4
无聊写了个。a、b都是正数,其他符号的组合可以另写个wrapper函数。
String subtract(String a, String b) {
boolean minus = false;
if (b.length() > a.length() || b.length() == a.length()
&& a.compareTo(b) < 0)
minus = true;
if (minus) {
String tmp = a;
a = b;
b = tmp;
}
int alen = a.length();
int blen = b.length();
StringBuilder sb = new StringBuilder(
new String(new char[a.length()]).replace('\0', '0'));
int carry = 0;
for (int i = 0; i < a.length(); i++) {
int x = a.charAt(alen - i - 1) - '0' + carry;
int y = blen - i - 1 < 0 ? 0 : b.charAt(blen - i - 1) - '0';
if (x < y) {
carry = -1;
sb.setCharAt(alen - i - 1, (char) (10 + x - y + '0'));
} else {
carry = 0;
sb.setCharAt(alen - i - 1, (char) (x - y + '0'));
}
}
while (sb.charAt(0) == '0')
sb.deleteCharAt(0);
return minus ? "-" + sb.toString() : sb.toString();
}

【在 k*********6 的大作中提到】
: 多谢!
k*********6
发帖数: 738
5
多谢楼上!
1 (共1页)
进入JobHunting版参与讨论
相关主题
大整数相乘谁贴个bug free的code收到G家拒信,发面经
设计一种数据机构实现大数相加和相乘发个Twitter的面试题
GOOG intern interview 题目50行code能解决addbinary 问题么
【一个BB公司问的字母排序的问题】Reverse Words in a String
AMAZON onsite 3月面经星期一福利:某公司店面题
Airbnb到底招什么样的人?问个Zenefits电面题目,他家好难。。。
请教最近onsite的一道面试题:大数相加Google 电面
Word ladder II 感觉算法已经是最优了,但是过不了大测试,能不能帮忙看看?问一道uber onsite题目
相关话题的讨论汇总
话题: string话题: alen话题: int话题: blen话题: minus