实现sum函数

wwf06802136 2009-09-26 10:52:33
有两个数组,int a[] ={1,2,3}, b[] = {4,5} 得出的结果是123+45 = 168;求实现两个数组相加的
sum(int value1,int value2)方法?
...全文
200 11 打赏 收藏 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwf06802136 2009-09-27
  • 打赏
  • 举报
回复
如果访问时数据量比较大,是否应该转为long类型,或者哪个算法会比较好点~
followith 2009-09-27
  • 打赏
  • 举报
回复

public class SumArray {
public int sum(int[] value1,int[] value2){
return getValue(value1) + getValue(value2);
}

public int getValue(int[] value){
int number = 0;
if(null != value && value.length > 0){
StringBuffer numberBuffer = new StringBuffer();
for(int i = 0; i< value.length;i++){
numberBuffer.append(value[i]);
}
number = Integer.parseInt(numberBuffer.toString());
}
return number;
}
public static void main(String args[]){
int[] value1 = {9,2,4};
int[] value2 = {5,2,0};
SumArray sumArray = new SumArray();
System.out.println(sumArray.sum(value1,value2));
}
}
Leopard_911 2009-09-27
  • 打赏
  • 举报
回复
public static int SUM(int a[],int b[]){
int size = (a.length > b.length ? a.length : b.length) ;
int sum = 0 ;
int sub = 0 ; //进位标志
int temp ;
for(int i = size - 1 , k = 0 ; i >= 0 ; i-- , k++){
if( k >= a.length){
if(sub == 1){
sum += (int)(b[i] + 1) * Math.pow(10, size - i - 1) ;
sub = 0 ;
}
else{
sum += (int)(b[i] * Math.pow(10, size - i - 1)) ;
}
}
else if(k >= b.length){
if(sub == 1){
sum += (int) ((a[i] + 1) * Math.pow(10, size - i - 1)) ;
sub = 0 ;
}
else{
sum += (int)(a[i] * Math.pow(10, size - i - 1)) ;
}
}
else{
if(sub == 1){
temp = a[a.length - k - 1] + b[b.length - k - 1] + 1;
sub = 0 ;
}
else{
temp = a[a.length - k - 1] + b[b.length - k - 1] ;
}
if(temp >= 10){
sub = 1 ;
}
sum += (temp % 10) * Math.pow(10, size - i - 1);
}
}
return sum;
}
zxlion 2009-09-27
  • 打赏
  • 举报
回复
up 2
sforiz 2009-09-27
  • 打赏
  • 举报
回复
up 1
  • 打赏
  • 举报
回复
public class Test1 {

public static void main(String[] args) {
int[] a = { 1, 2, 3 }, b = { 4, 5 };
int k = sum(a, b);
System.out.println(k);
}

public static int sum(int[] num1, int[] num2) {
int j = num1.length - 1;
int k = num2.length - 1;
int up = 0;
int sum = 0;
int mul = 1;
while (j > -1 || k > -1) {
int n = (j < 0 ? 0 : num1[j--]) + (k < 0 ? 0 : num2[k--]) + up;
sum += n % 10 * mul;
up = n / 10;
mul *= 10;
}
return sum;
}
}
zhanghai921 2009-09-27
  • 打赏
  • 举报
回复
public class SumTest {
public static void main(String[] args){
int[] a ={1,2,3},b={4,5};
sum(a,b);
}

public static int sum(int[] a,int[] b){
StringBuffer sa = new StringBuffer();
StringBuffer sb = new StringBuffer();
for(int i=0;i<a.length;i++){
sa.append(a[i]);
}
for(int i =0;i<b.length;i++){
sb.append(b[i]);
}
return Integer.parseInt(sa.toString())+Integer.parseInt(sb.toString());

}
}
bigbro001 2009-09-27
  • 打赏
  • 举报
回复
另外一种常规思维的方法。。。

public class SumTest
{
public static void main(String[] args)
{
int[] a = {1, 2, 3};
int[] b = {4, 5};
System.out.println(sum(a, b));
}

public static long sum(int[] a, int[] b)
{
long A = 0;
long B = 0;
for (int i = a.length - 1, j = 0; i >= 0; i--, j++)
A += a[i] * Math.pow(10, j);
for (int i = b.length - 1, j = 0; i >= 0; i--, j++)
B += b[i] * Math.pow(10, j);
return (A + B);
}
}
gesanri 2009-09-26
  • 打赏
  • 举报
回复


public class TestSum {
public static void main(String args[]){
int a[] ={1,2,3};
int b[] = {4,5};
System.out.println("The sum is: " + sum(a,b));
}

public static int sum(int a[],int b[]){
String stra = "";
String strb = "";
for(int i = 0; i < a.length; i++)
stra += String.valueOf(a[i]);
for(int i = 0; i < b.length; i++)
strb += String.valueOf(b[i]);
return Integer.parseInt(stra) + Integer.parseInt(strb);
}
}
gesanri 2009-09-26
  • 打赏
  • 举报
回复

public class TestSum {
public static void main(String args[]){
int a[] ={1,2,3};
int b[] = {4,5};
System.out.println("The sum is: " + sum(a,b));
}

public static int sum(int a[],int b[]){
String stra = "";
String strb = "";
for(int i = 0; i < a.length; i++)
stra += String.valueOf(a[i]);
for(int i = 0; i < b.length; i++)
strb += String.valueOf(b[i]);
return Integer.parseInt(stra) + Integer.parseInt(strb);
}
}

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧