大数的加法
来源:互联网 发布:炫舞房间源码 编辑:程序博客网 时间:2024/06/06 09:03
只是实现了两个位数相等的大数的相加,若要两个不同的数相加可以修改一下逻辑,粗浅的很,请多指教
/**
*
* @param a
* @param b
* @return 以字符串形式返回结果
*/
public static String add(String a, String b) {
String result = "";
int temp = 0;// 临时存放每个位数上的和
int[] cun = new int[LEN];// 将结果存放到数组中
boolean flag = false;//判断是否有进位
//这个for循环用于将和存放到数组中
for (int i = LEN - 1; i >= 0; i--) {//从个位数开始循环
// 将字符转化成int
// temp=Integer.parseInt(a.charAt(i)+"")+Integer.parseInt(a.charAt(i)+"");
temp = Integer.parseInt(String.valueOf(a.charAt(i)))//a在i位上的值
+ Integer.parseInt(String.valueOf(b.charAt(i)));//b在i位上的值
if (i == 0) {//最高位数的相加的特殊情况
if (flag) {
cun[i] = temp + 1;
} else {
cun[i] = temp;
}
} else {
if (temp >= 10) {// 当这个位数上的数需要进位时
if (flag) {
cun[i] = temp % 10 + 1;// 这个位数上的数有进位
} else {
cun[i] = temp % 10;
}
flag = true;
} else {
if (flag) {
if((temp + 1)>9){//如果有进位且相加后等于10的情况
cun[i]=0;
flag=true;
}
else{
cun[i] = temp + 1;// 这个位数上的数有进位
}
} else {
cun[i] = temp;
}
flag = false;
}
}
}
for (int j = 0; j < LEN; j++) {
//System.out.println(cun[j]);
result = result + cun[j];
}
return result;
}
- 大数的加法
- 大数的加法
- 大数的加法
- 大数的加法
- 大数加法的实现
- 大数的加法 进位
- 大数的加法
- 大数的加法
- 大数的加法
- 大数的加法
- 大数的加法
- 大数小数的加法
- 大数的加法
- 大数加法和大数乘法的实现
- 大数加法 以及 大数减法的思路
- 浮点数的大数加法
- 大数的加法和乘
- C++实现大数的加法
- Python 学习入门(24)—— 进程高级
- 批改Android镜像文件 ramdisk.img、system.img、userdata.img获取root权限
- ubuntu下安装gcc
- C++读取文件中有逗号的数据
- 为方便ATS管理建立的一些命令别名
- 大数的加法
- 反转数字
- 最大乘积
- poj 3384 Feng Shui(内推进半平面交+最远点对)
- Python: Sort a dictionary by value
- Python 学习入门(25)—— 闭包
- 项目的执行--有偏差随意调整计划可能会导致项目的失败
- Hive用户指南
- hibernate中用hql怎么执行delete的sql语句