字符串模拟大数相加——Java实现
2024-10-06 16:11:43
本题是CVTE二面编程题,首先考虑返回值肯定是一个字符串(int会有溢出可能),并且两个字符串只含数字,不含”+“、”-“这种。
代码如下:
public static String add(String str1, String str2) {
if(str1 == null)
return str2;
if(str2 == null)
return str1;
StringBuffer s1 = new StringBuffer(str1).reverse();
StringBuffer s2 = new StringBuffer(str2).reverse();
StringBuffer res = new StringBuffer();
int len1 = s1.length();
int len2 = s2.length();
int len;
if(len1 < len2) {
len = len2;
int count = len2 - len1;
while(count-- > 0)
s1.append('0');
} else {
len = len1;
int count = len1 - len2;
while(count-- > 0)
s2.append('0');
}
int overflow = 0;
int num;
for(int i = 0; i < len; i++) {
num = s1.charAt(i) - '0' + s2.charAt(i) - '0' + overflow;
if(num >= 10) {
overflow = 1;
num -= 10;
} else {
overflow = 0;
}
res.append(String.valueOf(num));
}
if(overflow == 1)
res.append(1); return res.reverse().toString();
}
最新文章
- 【转】windows环境下安装win8.1+Mac OS X 10.10双系统教程
- Swift 04.Functions
- 手把手教你如何加入到github的开源世界!
- 开发时建议关闭chrome的缓存[Disable cache(while DevTools open)]
- 详解linux系统的启动过程及系统初始化
- 查看静态库(.a文件)内容
- sql统计重复数据
- Qt之QtSoap(访问WebService)
- Unable to resolve target 'android-8'类似错误的解决办法
- Navicat 看历史执行SQL
- Linux系统重启network服务失败
- JQuery使用on绑定动态生成元素时碰到的问题
- eclipse中以debug方式启动tomcat报错
- js登录,回车登录
- Studio 一些使用
- Python异常处理总结
- 转 Ubuntu16.04+QT4.8.7开发环境搭建
- nginx 返回数据不完整
- cc150 --链表分割
- MVC 源码调试