大整数相加
整体思想都是补零,如a:123,b:1,补零后a:123, b:001然后相加进位
java是前补零
c++是将数从个位存,剩下的默认为0
java实现
import java.math.BigInteger;
public class Q2 {
/*
* 两大数相加。
*/
/*
* 方法一:
* 用java.math.BigInteger类
* 注:必须是正整数相加
*/
public String m1(String a, String b){
BigInteger big1 = new BigInteger(a);
BigInteger big2 = new BigInteger(b);
return big1.add(big2).toString();
}
/*
* 方法二:
*/
public String m2(String a, String b){
int len1 = a.length();
int len2 = b.length();
int len = len1;
if(len1 > len2){
for(int i = 0; i < len1 - len2; i ++){
b = '0' + b;
}
len = len1;
}else if(len1 < len2){
for(int i = 0; i < len2 - len1; i ++){
a = '0' + a;
}
len = len2;
}
int c[] = new int[len];
int a1, b1;
int temp = 0;
String s = "";
for(int i = len - 1; i >= 0; i --){
//char转为int
a1 = Integer.valueOf(a.charAt(i)) - 48;
//法二:char转为int
//a1 = a.charAt(i) - '0';
b1 = Integer.valueOf(b.charAt(i)) - 48;
c[i] = (a1 + b1 + temp) % 10;
temp = (a1 + b1 + temp) / 10;
s = String.valueOf(c[i]) + s;
}
return s;
}
public static void main(String[] args){
Q2 q2 = new Q2();
String a = "99999999999999999999999999";
String b = "11111111111111111111111111111";
String s = q2.m1(a, b);
System.out.println(s);
String c = q2.m2(a, b);
System.out.println(c);
}
}
C++实现
#include<iostream>
using namespace std;
void main(){
char a[201], b[201];
int a1[201], b1[201];
memset(a1, 0, sizeof(a1));
memset(b1, 0, sizeof(b1));
cin >> a >> b;
int len1 = strlen(a);
int len2 = strlen(b);
int len = len1 > len2 ? len1 : len2;
int j = 0;
for(int i = len1 - 1; i >= 0; i --){
a1[j ++] = a[i] - '0';//a1从个位开始存放
}
j = 0;
for(i = len2 - 1; i >= 0; i --){
b1[j ++] = b[i] - '0';
}
int n = 0; //n表示进位
int temp;
for(i = 0; i < len; i ++){
temp = a1[i] + b1[i] + n;
a1[i] = temp % 10;
n = temp / 10;
}
if(n != 0){//表示最高位相加后的进位
cout << n;
}
for(i = len - 1; i >= 0; i --){//从高位开始输出
cout << a1[i];
}
cout << endl;
}
分享到:
相关推荐
java经典算法题例。参赛必做。 【程序14】 题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找...
任意正整数都能拆成若干唯一的2的幂指数之和,php版本和js版本都有。
1.16 简单程序:两个整数相加 1.17 内存的概念 1.18 算术运算 1.19 判断:相等与关系运算符 1.20 新型头文件与名字空间 1.21 有关对象的思考 小结 术语 自测练习 自测练习答案 练习 第2章 控制结构 2.1 简介 ...
1.16 简单程序:两个整数相加 1.17 内存的概念 1.18 算术运算 1.19 判断:相等与关系运算符 1.20 新型头文件与名字空间 1.21 有关对象的思考 小结 术语 自测练习 自测练习答案 练习 第2章 控制结构 2.1 简介 ...
1类的构造和对象的是使用· 定义一个类Fact表示无符号有理数(分数),成员有分子(num)和分母(den) ...-两个分数相加,结果为不可约数(先通分,然后再约分) 定义testFact类,创建Fact对象,并调用各个方法
两数相加 中等 Java 3 无重复字符的最长子串 中等 Java 5 最长回文子串 中等 python 7 整数反转 简单 python 8 字符串转换整数(atoi) 中等 C++ 11 盛最多水的容器 中等 C++ 双指针法 :star: 15 三数之和 中等 C++ 17...
两数相加 t2 3 无重复字符的最长子串 t3 4 寻找两个正序数组的中位数 t4 5 最长回文子串 t5 6 Z 字形变换 t6 7 整数反转 t7 8 字符串转换整数 (atoi) t8 9 回文数 t9 10 正则表达式匹配 t10 11 盛最多水的容器 t11 ...
System.out.println("请问要相加多少项?"); howMany = scanner.nextInt(); int sum=0; int a1=a; // 用来保存 a 的初始值 for (int i=1; i; i++){ sum+= a; a = 10*a +a1; // 这表示a 的下一项 // 每次 a ...
两个数字相加 中等的 Java 3. 无重复字符的最长子串 中等的 C++ 4. 两个有序数组的中位数 难的 Python2 5. 最长回文子串 中等的 C 6. 之字形转换 中等的 Javascript 7. 反转整数 简单的 C# 8. 字符串到整数 (atoi) ...
1.16 简单程序:两个整数相加-------------------------------------------15 1.17 内存的概念-------------------------------------------------------18 1.18 算术运算------------------------------------...
C++ C Java Python 数组拆分 I E 2018-3-16 北京 Y 两数之和 E 2018-5-29 北京 Y 两数相加 M 2018-5-30 北京 Y 反转整数 E 2018-5-31 北京 Y 回文数 E 2018-6-3 北京 Y 删除链表的倒数第N个节点 M 2018-6-3 北京 Y ...
任意输入一个偶数n(n>4),请将它分解为两个素数之和。
C++ Python Java 博客 1 二和 2 两个数字相加 3 无重复字符的最长子串 4 两个有序数组的中位数 5 最长回文子串 6 之字形转换 7 反转整数 8 字符串到整数 (atoi) 9 回文数 10 正则表达式匹配 11 盛水最多的容器 12 ...
java lru leetcode My solutions of LeetCode exercises 算法-简体 | 类名解释 名为 MySolution 的类是我自己苦思冥想、搜肠刮肚、磕巴磕巴写出来的,而名为 Solution(或者带有数字)的则是灰心丧气、万念俱灰、自...
给定一个整数数组,返回两个数字的索引,使它们相加为特定的target 。 您可以假设每个输入都只有一个解决方案。 例子: Given nums = [2, 7, 11, 15], target = 9, Because nums[0] + nums[1] = 2 + 7 = 9, return ...
C++ 解决方案。 2 月 11 日更新:我开始添加 Java 解决方案。 对于 EXPEDIA! 8 月 16 日更新:我继续我的工作。 为了娱乐。 # 标题 解决方案 0 ----- 1 二和 2 两个数字相加 3 无重复字符的最长子串 5 最长回文子串...
Java JS 1. 二和 :green_circle: 数组、哈希表 ✓ ✓ 2. 两个数相加 :orange_circle: 链表 ✓ 7. 反转整数 :green_circle: 数学 ✓ ✓ 12.整数转罗马 :orange_circle: 数学字符串 ✓ 13.罗马到整数 :green_circle: ...
18.2 在 C #代码中调用 C++和 VB 编写的组件 .240 18.3 版 本 控 制 .249 18.4 代 码 优 化 .252 18.5 小 结 .254 第五部分 附 录 .255 附录 A 关 键 字.255 附录 B 错 误 码.256 附录 C .Net 名字空间...
(Java组代码填空)有n个孩子站成一圈,从第一个孩子开始顺时针方向报数,报到3的人出列,下一个人继续从1报数,直到最后剩下一个孩子为止。问剩下第几个孩子。下面的程序以10个孩子为例,模拟了这个过程,请完善...