编程计算1+1=?
[发帖际遇]: 原始人的奔跑送馒头获得小费现金38思明币编程计算“1”+“1”=?,那么“100000000000000000000000000000000000000000000001”+“10000000000000000000001”=?,你能完成吗?软件专业的你? 有个想法把它们转成字符数组 然后相加 [发帖际遇]: 原始人的奔跑在大街上捡到现金1000思明币, 飞快的跑回家躲着.
原帖由 ︶ㄣじ☆veJ 于 2008-6-22 10:07 发表 http://172.16.1.236:8080/images/common/back.gif
有个想法把它们转成字符数组 然后相加 写了半个小时我就写:
package com.chen.add;
import java.util.*;
public class OAndO {
/**
* 获得str1 + str2的结果
* @param str1
* @param str2
*/
public void getSum(String str1,String str2)
{
int[] in1=this.intChange(str1);
int[] in2=this.intChange(str2);
List<Integer> list1=this.listChange(in1);
List<Integer> list2=this.listChange(in2);
System.out.println("数组1:"+list1);
System.out.println("数组2:"+list2);
Collections.reverse(list1);
Collections.reverse(list2);
System.out.println("数组1"+list1);
System.out.println("数组2"+list2);
StringBuffer sb=new StringBuffer();
if(list1.size()>=list2.size())
{
List<Integer> list3=null;
int sum=0;
int[] in3=new int;
int[] in4=new int;
for(int i=0;i<list2.size();i++)
{
in4=list2.get(i);
}
System.out.println();
for(int i=0;i<list2.size();i++)
{
sum=list1.get(i)+in4;
in3=sum%10;
in3=sum/10;
in3=in3+in3;
}
list3=this.listChange(in3);
System.out.println("相加后得:"+list3);
Collections.reverse(list3);
System.out.println("反转后得:"+list3);
for(int i=0;i<list3.size();i++)
{
sb.append(list3.get(i));
}
System.out.println("最后计算为:"+str1+"+"+str2+"="+sb.toString());
}
else
{
List<Integer> list3=null;
int sum=0;
int[] in3=new int;
int[] in4=new int;
for(int i=0;i<list1.size();i++)
{
in4=list1.get(i);
}
System.out.println();
for(int i=0;i<list2.size();i++)
{
sum=list2.get(i)+in4;
in3=sum%10;
in3=sum/10;
in3=in3+in3;
}
list3=this.listChange(in3);
System.out.println("相加后得:"+list3);
// Collections.reverse(list3);
// System.out.println("反转后得:"+list3);
for(int i=0;i<list3.size();i++)
{
sb.append(list3.get(i));
}
System.out.println("最后计算为:"+str1+"+"+str2+"="+sb.toString());
}
}
/**
* 把字符串转化为整形数组
* @param str
* @return
*/
// public int[] intChange(String str)
// {
//
//String[] s=new String;
//int[] in=new int;
//s=str.split("");
//for(int i=0;i<str.length();i++)
//{
// in=Integer.parseInt(s);
//}
//return in;
// }
public int[] intChange(String str)
{
byte[] b=str.getBytes();
int[] in=new int;
for(int i=0;i<b.length;i++)
{
in=b-48;
}
return in;
}
public List<Integer> listChange(int[] in)
{
List<Integer> list=new ArrayList<Integer>();
for(int i=0;i<in.length;i++)
{
list.add(in);
}
return list;
}
/**
* @param args
*/
public static void main(String[] args) {
OAndO oo=new OAndO();
oo.getSum("5", "16");
oo.getSum("19", "5");
//System.out.println(15/10);
//System.out.println(15%10);
}
}
页:
[1]