Java编程 一个50位的数乘以另一个50位的数

[复制链接]
查看11 | 回复2 | 2009-8-10 20:17:57 | 显示全部楼层 |阅读模式
不知道你的具体情况是什么样的。只是小说一下。doublea = 2.7E50;double b = 5E50;double c = a*b;System.out.print(c);double可以处理到308位数据。这个没有什么不可以的。但是,如果你的意思是处理之后,不想用科学记术法的显示方式,那就转成string类型循环加“0”,e的前面正常计算,然后作一个循环,他的条件就是e后面的数字,当然如果e前面的数字大于10,循环的就是e后面的数+1。
回复

使用道具 举报

千问 | 2009-8-10 20:17:57 | 显示全部楼层
学过算法没?可以这么做,比如说第一个50位的数是abcdef,它可以表示成abc*10-3 + def,第二个数是ghijkl,表示成 ghi*10-3 + jkl,两数相乘是abcdef*ghijkl=(abc*10-3 )*(ghi*10-3)+(abc*10-3)* jkl+def*(ghi*10-3)+deg*jkl=abc*ghi*10-6
+ (abc*10-3)* jkl+def*(ghi*10-3)+deg*jkl,类似的,可以继续分离下去,然后是大数相加,也可以用这种思想分开相加。
回复

使用道具 举报

千问 | 2009-8-10 20:17:57 | 显示全部楼层
说实话,做为程序员的角度看这个问题,你这个问题表述不清楚。你是问算法,还是问结果?还只是问源代码?呵呵,不好意思^_^,你可以把问题补充描述一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行