关于java大数运算的问题(如大数相乘)

风尘流月 2012-02-27 08:39:57
刚学java的一个菜鸟,想问一下大家在不调用专门的API的前提下,这段程序 要怎么写啊?给点思路,代码不必给了。。
...全文
768 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
寻侠客 2012-05-24
  • 打赏
  • 举报
回复
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] x=[9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9];
int[] y=[9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9];

System.out.println( multiiply(X,Y));
}
private static int[] multiiply(int[] x,int[] y){

int[] mtpy=null;

int xSize=x.length;
int ySize=y.length;
for (int i = xSize; i>=0; i--) {
int xshu=x[i];

for (int j = ySize; j >=0; j--) {
int yshu=y[j];
int sun=xSize+ySize-i-j;
int[] zt=new int[sun+3];

}

}

return mtpy;
}
寻侠客 2012-05-24
  • 打赏
  • 举报
回复
public static void main(String[] args) {

int[] X = {1,1,1,1,1,1,1,1,1,1,1};
int[] Y = {1,1,1,1,1,1,1,1,1,1,1};
MaxCheng ch = new MaxCheng();
int[] z = ch.multiiply(X, Y);

for (int i = 0; i < z.length; i++) {
if(z[i]==0&&i==0){}
else
System.out.print(z[i]);
}
}

public int[] multiiply(int[] x, int[] y) {
int xSize = x.length;
int ySize = y.length;
int[] jg = new int[xSize + ySize];
for (int i = xSize - 1; i >= 0; i--) {
for (int j = ySize - 1; j >= 0; j--) {
int ji = x[i] * y[j];
for (int k = i + j + 1; k >= 0; k--) {
ji = jg[k] + ji;
if (ji < 10) {
jg[k] = ji;
break;
} else {
jg[k] = ji % 10;
ji = ji / 10;
}
}
}
}
return jg;
}


这个 可以用
寻侠客 2012-05-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] x=[9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9];
int[] y=[9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9];

System.out.print……
[/Quote]

这个错了,一年前写的 ,没仔细看,就发表了,今天仔细看了看,才发现 复制错了!
rispa_yang 2012-03-11
  • 打赏
  • 举报
回复
可以使用 java.math包中的两个很有用的类,BigInteger和 BigDecimal, 这两个类可以处理包含任意程度数字序列的数值。
ggyz 2012-03-11
  • 打赏
  • 举报
回复
用字符串是比较浪费的。一个unicode字符用了16位存储空间,而其实你只需要表达0-9这10个数字而已。用byte数组足够了。当然还可以进一步优化。
京郊-金手指 2012-02-28
  • 打赏
  • 举报
回复
支持这种,其他的数据类型不能满足大数相乘[Quote=引用 1 楼 dracularking 的回复:]
就是用字符串來存儲運算的中間過程,最終達到獲取結果的目的
因為字符串相對於具化類型變量,遠遠不受長度限制的約束
[/Quote]
dracularking 2012-02-27
  • 打赏
  • 举报
回复
就是用字符串來存儲運算的中間過程,最終達到獲取結果的目的
因為字符串相對於具化類型變量,遠遠不受長度限制的約束

58,452

社区成员

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

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