用java求两个很大的数字之和,提示用String类模拟,不考虑带符号运算。。。。。
展开全部
不管你2个数字有多大都可以运算,检查是不是数字你自己来做吧
public class Test04 {
public static void main(String[] args) {
String a = "435743987584932470329843984793875943875983759847598745";
String b = "43579438759843759843759843759843759843759843759843759437594375984375934875943759843";
System.out.println(add(a, b));
}
public static String add(String a, String b) {
int length = a.length() > b.length() ? a.length() : b.length();
String result = "";
boolean isIn = false;
for(int i = 0; i < length; i++) {
int x = 0;
int y = 0;
if(i < a.length()) {
x = Integer.parseInt(String.valueOf(a.charAt(a.length() - 1 - i)));
}
if(i < b.length()) {
y = Integer.parseInt(String.valueOf(b.charAt(b.length() - 1 - i)));
}
int r = x + y;
if(isIn) {
r++;
}
if(r > 10) {
isIn = true;
r -= 10;
} else {
isIn = false;
}
result = r + result;
if(i == length - 1 && isIn == true) {
result = 1 + result;
}
}
return result;
}
}
public class Test04 {
public static void main(String[] args) {
String a = "435743987584932470329843984793875943875983759847598745";
String b = "43579438759843759843759843759843759843759843759843759437594375984375934875943759843";
System.out.println(add(a, b));
}
public static String add(String a, String b) {
int length = a.length() > b.length() ? a.length() : b.length();
String result = "";
boolean isIn = false;
for(int i = 0; i < length; i++) {
int x = 0;
int y = 0;
if(i < a.length()) {
x = Integer.parseInt(String.valueOf(a.charAt(a.length() - 1 - i)));
}
if(i < b.length()) {
y = Integer.parseInt(String.valueOf(b.charAt(b.length() - 1 - i)));
}
int r = x + y;
if(isIn) {
r++;
}
if(r > 10) {
isIn = true;
r -= 10;
} else {
isIn = false;
}
result = r + result;
if(i == length - 1 && isIn == true) {
result = 1 + result;
}
}
return result;
}
}
展开全部
用String类模拟?这不吃饱撑的……
用BigDecimal或者BigInteger不就行了
用BigDecimal或者BigInteger不就行了
更多追问追答
追问
说了是刚刚接触java的,老师要求必须String类模拟的,你也是个水货吧,只会用别人写好的东西。。。。
追答
唉 你这样孩子可咋整。自己水平差还说别人是水货,最看不上你这样的了。
能写出来也不告诉你 一边儿玩蛋去吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
java的大数运算吧,需要用到下面的类和大数运算的方法
BigInteger resultBig = new BigInteger(num1).mod(new BigInteger(num2));
BigInteger resultBig = new BigInteger(num1).mod(new BigInteger(num2));
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询