社区
Eclipse
帖子详情
关于java大数运算的问题(如大数相乘)
风尘流月
2012-02-27 08:39:57
刚学java的一个菜鸟,想问一下大家在不调用专门的API的前提下,这段程序 要怎么写啊?给点思路,代码不必给了。。
...全文
831
7
打赏
收藏
关于java大数运算的问题(如大数相乘)
刚学java的一个菜鸟,想问一下大家在不调用专门的API的前提下,这段程序 要怎么写啊?给点思路,代码不必给了。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
就是用字符串來存儲運算的中間過程,最終達到獲取結果的目的
因為字符串相對於具化類型變量,遠遠不受長度限制的約束
java
大数
运算
[转]
本文介绍如何使用数组法解决
JAVA
语言中
大数
运算
问题
,通过分组存放
大数
并实现进位操作,成功避免了
大数
相加或
相乘
导致的溢出
问题
。此外,还展示了如何利用`
java
.math.BigDecimal`和`
java
.math.BigInteger`进行
大数
运算
,提供了处理小数的方法,确保了复杂计算任务的准确性和稳定性。
JAVA
大数
据
运算
系列之大整数
相乘
博主分享了在面试准备中遇到的
大数
据
运算
面试题,特别是关于两个非负整数
相乘
的
问题
。文章记录了解题思路,来源于qwurey的
Java
实现大整数
相乘
的方法。
JAVA
两个
大数
相乘
本文探讨了在
Java
中处理
大数
相乘
的
问题
,由于
Java
的Long类型限制,对于超过19位的
大数
,需要使用特殊方法。文章介绍了将
大数
转化为字符串,然后转换为int型数组进行乘法
运算
的思路,适用于科研中的
大数
计算和面试中的算法
问题
。
大数
相乘
算法 List实现
本文介绍了一种使用不进位乘法解决
大数
相乘
问题
的算法,通过
Java
实现。作者在腾讯模拟笔试中遇到此
问题
,提出用ArrayList存储
大数
并进行
运算
,程序经过测试能成功求解
大数
乘积,但仍有优化空间。
大数
相乘
小学生实现
该博客展示了如何手动编写
Java
代码来实现
大数
相乘
。作者将
问题
分解为两个子
问题
:个位数乘以
大数
和
大数
相加。通过使用ArrayList存储和操作数字,实现了从个位到高位的逐位
相乘
和相加过程,从而完成了
大数
的乘法
运算
。
Eclipse
58,441
社区成员
49,458
社区内容
发帖
与我相关
我的任务
Eclipse
Java Eclipse
复制链接
扫一扫
分享
社区描述
Java Eclipse
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章